最近在使用response.sendRedirect()时出现如下错误:
  java.lang.IllegalStateException
  org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:423)

经过分析、查看jdk文档终于找到解决的办法,在response.sendRedirect()方法后加return语句即可,如下:
  response.sendRedirect("login.jsp");
  return;

原因是:在程序中两次调用了response.sendRedirect()方法。 

jdk5.0文档中很清楚地介绍了出现IllegalStateException异常的可能情况:

1)同一个页面中再次调用response.sendRedirect()方法。
2)提交的URL错误,即不是个有效的URL。 
 
 sendRedirect
void sendRedirect(java.lang.String location)
throws java.io.IOException
Sends a temporary redirect response to the client using the specified redirect location URL. 
This method can accept relative URLs; the servlet container must convert the relative URL 
to an absolute URL before sending the response to the client. If the location is relative without
 a leading '/' the container interdivts it as relative to the current request URI. If the
 location is relative with a leading '/' the container interdivts it as relative to the 
servlet container root. 
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. 

Parameters: 
location - the redirect location URL 
Throws: 
java.io.IOException - If an input or output exception occurs 
java.lang.IllegalStateException - If the response was committed or if a partial URL is given
 and cannot be converted into a valid URL
  
 
 
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐