2009-11-25 27 views
3

在doGet或doPost-methods的末尾顯式返回,並讓該方法返回「本身」有什麼區別嗎?servlet是否應該在doGet/doPost的末尾顯式返回?

public void doGet(HttpSerlvetRequest req, HttpServletResponse resp) { 
    <my code here> 
    return; 
} 

public void doGet(HttpSerlvetRequest req, HttpServletResponse resp) { 
    <my code here> 
} 

回答

3

號作爲一個普通void方法,它不需要return

0

沒有區別可言,一回是在方法的末尾隱。

+0

它只對'void'方法隱含。 – 2009-11-25 10:58:55

0

完全沒有區別,return語句是不必要的。

2

完全沒有必要;也不會添加任何樣式點。

9

然而,有些情況下,您可能會在servlet方法中看到return語句,這可能會讓初學者感到困惑。這裏有一個例子:

protected void doPost(request, response) { 
    if (someCondition) { 
     response.sendRedirect("page"); 
     return; 
    } 
    doSomethingElse(); 
    request.getRequestDispatcher("page").forward(request, response); 
} 

這裏return聲明必要因爲調用重定向(或轉發)不會導致代碼以神奇跳出方法塊的一些首發似乎認爲。它仍然繼續運行直到結束,這將導致IllegalStateException: response already committed在前鋒被調用時。

+0

與這個問題無關,但還有什麼可以在servlet中產生相同的效果('dispatcher'或'redirect'未執行後的代碼塊)? – 2018-02-19 04:41:14

相關問題