java.lang.IllegalStateException: Cannotforward after response has been committed
atorg.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:312)
atorg.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
atzhao.ai.nan.servlet.UserServlet.login(UserServlet.java:57)
atzhao.ai.nan.servlet.UserServlet.doGet(UserServlet.java:20)
atzhao.ai.nan.servlet.UserServlet.doPost(UserServlet.java:66)
atjavax.servlet.http.HttpServlet.service(HttpServlet.java:637)
atjavax.servlet.http.HttpServlet.service(HttpServlet.java:717)
atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
atorg.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
atorg.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
atorg.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
atjava.lang.Thread.run(Thread.java:619)
错误代码为:
if (user != null) {
request.getSession().setAttribute("user",user);
try {
request.getRequestDispatcher("/admin/index.jsp").forward(
request,response);
} catch(ServletException e1) {
e1.printStackTrace();
} catch(IOException e1) {
e1.printStackTrace();
}
}
try {
request.getRequestDispatcher("login.jsp")
.forward(request,response);
} catch(Exception e) {
e.printStackTrace();
}
改正后为:
if (user != null) {
request.getSession().setAttribute("user",user);
try {
request.getRequestDispatcher("/admin/index.jsp").forward(
request,response);
} catch(ServletException e1) {
e1.printStackTrace();
} catch(IOException e1) {
e1.printStackTrace();
}
}else{
try {
request.getRequestDispatcher("login.jsp")
.forward(request,response);
} catch(Exception e) {
e.printStackTrace();
}
}