jdk5.0文档中很清楚地介绍了出现IllegalStateException异常的可能情况:
1)同一个页面中再次调用response.sendRedirect()方法。
2)提交的URL错误,即不是个有效的URL。
最近在使用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()方法。
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.
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.
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
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