将响应重定向到其他资源后如何执行System.out.println("")
。
在我的代码中:
res.sendRedirect("/more_value_in_param/display.jsp");
System.out.println("to avoid penalty and disconnection");
为什么在控制台to avoid penalty and disconnection
中显示,因为响应已经重定向到display.jsp
?
答案 0 :(得分:3)
sendRedirect()
方法不会停止执行您的方法
您应该以这样的方式对代码进行分支,即调用sendRedirect()
是方法中的最后一个语句,或者在调用return;
后显式调用sendRedirect()
。
答案 1 :(得分:0)
发送重定向不会破坏bean生命周期,因此执行以下代码。
答案 2 :(得分:0)
res.sendRedirect()不会破坏该方法中的控制流,但会对servlet响应的使用产生影响。
使用新URL将响应发送到客户端,并且在res.sendRedirect()的程序流程中,应该认为响应已提交。
在HttpServletResponse javadoc以及" Myth2"中找到了很好的信息。列于Control Flow Myths busted in Java。
我还会研究sendRedirect和forward之间的区别,以便对游戏中的客户端/容器关系有所了解。