response.setCharacterEncoding("gbk");
String username=request.getParameter("username");
String password=request.getParameter("password");
String e_mail=request.getParameter("e_mail");
String qq=request.getParameter("qq");
int QQ=Integer.parseInt(qq);
ZhangBean z=new ZhangBean();
z.setUsername(username);
z.setPassword(password);
z.setE_mail(e_mail);
z.setQq(QQ);
int c=new ZhangConnection().add(z);
if(c==1)
response.sendRedirect("../infor.jsp");
else
response.getWriter().print("<script>alert('失败')</script>");

}
错误如下
严重: Servlet.service() for servlet UserSevlet threw exception
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
at imti.sevlet.UserSevlet.doPost(UserSevlet.java:78)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    sendRedirect()yy方法进行IllegalStateException 的异常捕获,
    加个try catch试试
      

  2.   

    java.lang.IllegalStateException 
    at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435) 报了这样的错,一步是你的response已经在sendRedirect前做了一些steam的动作,所以response被重新了一下,导致IllegalState的问题检查一下sendRedirect前有没有这样的操作。
      

  3.   

    2楼的我想问一下我吧response.setCharacterEncoding("gbk");改成response.setContentType("text/html; charset=utf-8");就行了是为什么啊!!!!
      

  4.   

    String qq=request.getParameter("qq"); 
    int QQ=Integer.parseInt(qq);
    String qq为非数值时,出现异常
     
    需catch一下
      

  5.   

    at imti.sevlet.UserSevlet.doPost(UserSevlet.java:78) 这行的代码是什么?
      

  6.   

    java.lang.IllegalStateException 
    at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435) 报了这样的错,一步是你的response已经在sendRedirect前做了一些steam的动作,所以response被重新了一下,导致IllegalState的问题 检查一下sendRedirect前有没有这样的操作。
      

  7.   

    查查api文档,看这两个方法分别是干嘛使得就知道了
      

  8.   

    这个具体的要看tomcat的log目录下的log,光看这个,看不出问题来。
      

  9.   


    response.setCharacterEncoding("gbk");楼主有这方法么,看下API