我想实现这个..
在我的page1.jsp中我有一个链接并且链接触发了一个servlet
<a href="Servlet">link1</a>
所以,当用户按下link1,servlet以及其他我想要做的事情。
1 传递到下一页page2.jsp一个对象和
2 将用户重定向到page2.jsp
在我写的Servlet中:
request.setAttribute("cis", myObjet);
RequestDispatcher disp = getServletContext().getRequestDispatcher("/page2.jsp");
disp.forward(request, response);
response.sendRedirect("page2.jsp");
运行应用程序后,我在控制台中收到错误消息:
在提交响应后无法调用sendRedirect()
我读了一些与此相关的主题,但我没有解决它。该应用程序继续工作,虽然我在控制台中有这个错误...非常感谢你!
答案 0 :(得分:4)
如果您需要多个重定向行来检查每个拥有的条件,为了不获得异常,您应该控制响应的提交。
HttpServletResponse response = (HttpServletResponse) getResponse();
if (!response.isCommitted()){
// redirect or dispatch whereever you want
}
答案 1 :(得分:2)
首先,在您使用sendRedirect()
之后,无法致电forward()
。所以,你得到了那个例外。
然而,似乎真的不需要使用sendRedirect()
。您似乎相信在sendRedirect()
之后需要使用forward()
,因为您在两者中都使用了相同的页面。实际上,它不是那样的。
只需删除sendRedirect
行,就可以了。
另见:
答案 2 :(得分:1)
你要做的事情根本就是错误的。您不能在前进后进行重定向,反之亦然。您可以进行转发或重定向。
阅读以下链接:
http://docs.oracle.com/javaee/6/api/javax/servlet/RequestDispatcher.html#forward(javax.servlet.ServletRequest,javax.servlet.ServletResponse)
http://javapapers.com/jsp/difference-between-forward-and-sendredirect/
希望这有帮助。
萨赫勒
答案 3 :(得分:0)
你可以使用rd.include(req,res)的组合;和res.sendRedirect( - );在同一时间但你不能与rd.forward(req,res)的组合;和res.sendRedirect( - );同时。因为两个转发到新页面。