在 doGet 或 doPost 方法末尾显式返回与仅让方法“自行”返回之间有什么区别吗?
public void doGet(HttpSerlvetRequest req, HttpServletResponse resp) {
<my code here>
return;
}
public void doGet(HttpSerlvetRequest req, HttpServletResponse resp) {
<my code here>
}
然而,在某些情况下,您会在 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
。
不。作为常规
void
方法,它不需要 return
完全没有必要;也不添加任何风格点。
完全没有区别,返回是隐含在方法的末尾。
完全没有区别,不需要 return 语句。
哇..真是一个惊喜!
已经是 2023 年了,您仍然需要显式添加
return;
才能提前退出 doGet
或 doPost
,即使它是 void
函数。
太令人兴奋了..