主页 > 知识库 > JSP上传图片产生 java.io.IOException: Stream closed异常解决方法

JSP上传图片产生 java.io.IOException: Stream closed异常解决方法

热门标签:Mysql连接数设置 银行业务 科大讯飞语音识别系统 阿里云 Linux服务器 团购网站 服务器配置 电子围栏
在做 jsp 上传图片时,把 java 代码直接改成 jsp,上传时产生 如下异常:
2012-12-31 8:59:21 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.io.IOException: Stream closed
...
百思不得其解,翻出 jsp 转成 servlet 后的代码。如下(很很的醒目一下):
复制代码 代码如下:

...
}catch(Exception e){
e.printStackTrace();
}finally{
out.flush(); //
out.close();// 此处为源始代码
DBHelper.freeConnection(connection);
}
out.write('\r'); // 如上我已经关了 out 对象,但此处还在使用,所以便产生了如开始所描述的异常
out.write('\n');
} catch (Throwable t) {
if (!(t instanceof SkipPageException)){
out = _jspx_out;
if (out != null out.getBufferSize() != 0)
try { out.clearBuffer(); } catch (java.io.IOException e) {}
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
}
} finally {
_jspxFactory.releasePageContext(_jspx_page_context);
}
...

解决办法:把程序中加红加粗的代码改成:
复制代码 代码如下:

out.flush() ;
out = pageContext.pushBody(); // 关于该段程序的解释,doc中已经说的很清楚。

如下:(要特别注意一下flush()和clear()方法的区别,因为需求不同程序是不同的)
abstract void flush()
Flush the stream.

abstract void clear()
Clear the contents of the buffer.


PageContext 实现了抽象类 JspContext ,方法:pushBody(), 保存当前的out对象
BodyContent pushBody()
Return a new BodyContent object, save the current "out" JspWriter, and update the value of the "out" attribute in the page scope attribute namespace of the PageContext.

public abstract class BodyContent
extends JspWriter

out 内置对象
您可能感兴趣的文章:
  • Java实现图片上传到服务器并把上传的图片读取出来
  • java web图片上传和文件上传实例
  • java实现文件上传下载和图片压缩代码示例
  • java通过模拟post方式提交表单实现图片上传功能实例
  • Java以struts2为例介绍如何实现图片上传
  • Java Servlet上传图片到指定文件夹并显示图片
  • Java图片上传实现代码
  • java后台接收app上传的图片的示例代码
  • java实现上传图片进行切割的方法
  • java实现图片的上传与展示实例代码

标签:广元 蚌埠 枣庄 萍乡 大理 江苏 衡水 衢州

巨人网络通讯声明:本文标题《JSP上传图片产生 java.io.IOException: Stream closed异常解决方法》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266