执行servlet页面跳转报如下错误:
严重: Servlet.service() for servlet [TestServlet] in context with path [/test_servlet] threw exception
java.lang.IllegalStateException: Cannot forward after response has been committed
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:349)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
原因:服务器不允许多次跳转,否则报这个错误。
解决方法:
当你有多个跳转的页面的语句时候,好好检查一下,当 转发 或者 重定向的时候,需要在后加一个retrun 即可。
(1)servlet的话
检查servlet的service方法中是否包含super.service(req, resp);
或者检查servlet的doPost方法中是否包含super.doPost(req, resp);
或者检查servlet的doGet方法中是否包含super.doGet(req, resp);
包含则注释掉。
(2)多个跳转语句,在转发或重定向的后面加一个return;
req.getRequestDispatcher("a.jsp").forward(req, resp);
return;