用struts2实现下载功能时,浏览器取消下载时后台出现的异常

来源:互联网 发布:学口语 交流软件 编辑:程序博客网 时间:2024/05/17 02:29

其中的几条异常信息:


ClientAbortException:  java.io.IOException
at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:407)


Caused by: java.io.IOException
at org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:205)


java.lang.IllegalStateException: Cannot call sendError() after the response has been committed
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:450)


在网上综合了相关资料之后的回答:


当时好多人进行了讨论。很严肃地告诉你。这个不是java异常。。而是客户端异常。你能做的就是不要提示这个异常就好了。。因为这是客户端行为。比如说弹出下载框的时候。但是却点了取消。。就很有可能会出现这个异常了。我说的对吧?? 或者弹出下载框的时候,没有直接点击下载,而是选择了其它下载工具下载。此问题可以忽略,或者将异常输出去除~异常有2个ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error  这个是因为客户端取消了下载,而服务器端继续向浏览器写入数据时,抛出这个异常,这个是正常的,比如我正打开你的下载页面,中间我取消,或者换了页面。java.lang.IllegalStateException: getOutputStream() has already been called for this response  这个异常是因为你在调用 response,getOutputStream()之前,已经有内容输出了,一般建议这种流操作在servlet里面进行,不要使用jsp来做,如果做就不要在前面些任何东西,并且在jsp代码的第一行加上<%  out.clearBuffer();%>


  
0 0
原创粉丝点击