java.lang.IllegalStateException异常解决办法

本文介绍在使用response.sendRedirect()时遇到java.lang.IllegalStateException异常的原因及解决办法。通过在方法调用后添加return语句可以避免异常发生。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值