转发和sendRedirect问题。“提交响应后无法调用sendRedirect()”

yay*_*zis 0 jsp servlets response.redirect forward

我想实现这一点。
在我的page1.jsp中,我有一个链接,该链接触发了一个servlet。

    <a href="Servlet">link1</a>
Run Code Online (Sandbox Code Playgroud)

因此,当用户按下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");
Run Code Online (Sandbox Code Playgroud)

运行该应用程序后,我在控制台中看到一条错误消息:

提交响应后无法调用sendRedirect()

我读了一些与此有关的主题,但我还没有解决。该应用程序也继续工作,尽管我在控制台中有此错误...非常感谢!

小智 5

如果您必须有多个重定向行来检查每个条件,那么为了避免出现异常,您应该控制响应的提交。

HttpServletResponse response = (HttpServletResponse) getResponse();

if (!response.isCommitted()){
// redirect or dispatch whereever you want
}
Run Code Online (Sandbox Code Playgroud)