手机
当前位置:查字典教程网 >编程开发 >JSP教程 >JSP上传图片产生 java.io.IOException: Stream closed异常解决方法
JSP上传图片产生 java.io.IOException: Stream closed异常解决方法
摘要:在做jsp上传图片时,把java代码直接改成jsp,上传时产生如下异常:2012-12-318:59:21org.apache.catali...

在做 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 内置对象

【JSP上传图片产生 java.io.IOException: Stream closed异常解决方法】相关文章:

JSP+ MySQL中文乱码问题post提交乱码解决方案

jsp页面传参乱码的解决方法

jsp地址栏传中文显示乱码解决方法分享

Struts html:checkbox框初始默认是选中的解决方法

jsp页面传参乱码的解决方法

GET方法URL中传递中文参数乱码的解决方法

struts2中action实现ModelDriven后无法返回json的解决方法

常见JSP中文乱码例子及其解决方法

JSP输出HTML时产生的大量空格和换行的去除方法

jsp中文乱码 jsp mysql 乱码的解决方法

精品推荐
分类导航