servlet应该在doGet / doPost结束时显式返回吗?

时间:2009-11-25 09:13:22

标签: java servlets return

在doGet或doPost方法结束时显式返回之间是否有任何区别,只是让方法“单独”返回?

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

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

5 个答案:

答案 0 :(得分:11)

但是,有些情况下,您会在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

答案 1 :(得分:3)

没有。作为常规void方法,它不需要return

答案 2 :(得分:2)

完全没必要;也不添加任何样式点。

答案 3 :(得分:0)

根本没有区别,在方法结束时隐含了一个返回。

答案 4 :(得分:0)

完全没有区别,返回声明是不必要的。