If the response has already been committed, this method throws an IllegalStateException. After using this method, the response should be considered to be committed and should not be written to.
也就是说如果response被commit了,再sendRedirect就会报IllegalStateException错,或者是执行sendRedirect后,再往response里写东东,也报错
不知道为什么 我在捕获异常那里 一用重定向就出
java.lang.IllegalStateException
org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:432)
javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:125)
bbs.bbsindexservlet.processRequest(bbsindexservlet.java:80)
bbs.bbsindexservlet.doGet(bbsindexservlet.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
看到有这据话 我把
if(state.equals("toenter"))//禁言状态还没向好怎么处理
{
session.invalidate();
request.getRequestDispatcher("error2.jsp").forward(request,response);
}
里面的 重定向 改成了转发
就不再出 IllegalStateException
可是 我在CATCH里重定向 如果没异常发生的话 也就是不会用到sendRedirect
怎么也会发生错误呢 ?