欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JSP上傳圖片產(chǎn)生 java.io.IOException: Stream closed異常解決方法

 更新時間:2012年12月31日 15:53:20   作者:  
在做jsp上傳圖片時,把java代碼直接改成 jsp,上傳時產(chǎn)生異常,很是疑惑,于是搜索整理了一下解決方法,需要了解的朋友可以參考下
在做 jsp 上傳圖片時,把 java 代碼直接改成 jsp,上傳時產(chǎn)生 如下異常:
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'); // 如上我已經(jīng)關了 out 對象,但此處還在使用,所以便產(chǎn)生了如開始所描述的異常
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中已經(jīng)說的很清楚。

如下:(要特別注意一下flush()和clear()方法的區(qū)別,因為需求不同程序是不同的)
abstract void flush()
Flush the stream.

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


PageContext 實現(xiàn)了抽象類 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 內(nèi)置對象

相關文章

最新評論