我有一个 jsp 文件,其中包括另一个 jsp 文件来检查一些值等:
<jsp:include page="setup.jsp" />
在 setup.jsp 中,我有一些条件代码,它确定是否在会话中设置了一些需要的值,如果没有,则将它们重定向到不同的页面。或者至少应该如此,但重定向似乎被忽略了。
System.err.println("Redirecting!");
response.sendRedirect("http://www.google.com");
return;
我看到“重定向!” 登录到控制台,但页面继续并正常呈现。我让 curl 为我转储了标头,并看到响应是这样的HTTP/1.1 200 OK
,所以它肯定没有发送 302 重定向。
知道问题是什么以及如何解决这个问题吗?
编辑:我已经确认我的回复尚未提交。response.isCommitted()
返回false
表示状态代码和标头尚未发送。
编辑 2:我试过response.sendRedirect()
在很多其他地方打电话,发现我可以在 . JSP 中的重定向似乎被忽略了,如果我尝试在 jsp 之后立即重定向,那么我会得到一个非法状态异常,因为响应已经提交。