重定向代码仍然从previos页面执行

时间:2015-06-10 13:37:13

标签: java jsp servlets

将响应重定向到其他资源后如何执行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

3 个答案:

答案 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之间的区别,以便对游戏中的客户端/容器关系有所了解。