java.lang.IllegalStateException異常解決辦法

From:http://topic.csdn.net/u/20090415/08/a6868168-2794-48a1-b7dd-59ca71a7b43e.html

java.lang.IllegalStateException異常解決辦法  

最近在使用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 interprets it as relative to the current request URI. If the location is relative with a leading '/' the container interprets 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章