JSP上傳圖片產(chǎn)生 java.io.IOException: Stream closed異常解決方法
更新時(shí)間:2012年12月31日 15:53:20 作者:
在做jsp上傳圖片時(shí),把java代碼直接改成 jsp,上傳時(shí)產(chǎn)生異常,很是疑惑,于是搜索整理了一下解決方法,需要了解的朋友可以參考下
在做 jsp 上傳圖片時(shí),把 java 代碼直接改成 jsp,上傳時(shí)產(chǎn)生 如下異常:
2012-12-31 8:59:21 org.apache.catalina.core.StandardWrapperValve invoke
嚴(yán)重: Servlet.service() for servlet jsp threw exception
java.io.IOException: Stream closed
...
百思不得其解,翻出 jsp 轉(zhuǎn)成 servlet 后的代碼。如下(很很的醒目一下):
...
}catch(Exception e){
e.printStackTrace();
}finally{
out.flush(); //
out.close();// 此處為源始代碼
DBHelper.freeConnection(connection);
}
out.write('\r'); // 如上我已經(jīng)關(guān)了 out 對(duì)象,但此處還在使用,所以便產(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(); // 關(guān)于該段程序的解釋,doc中已經(jīng)說(shuō)的很清楚。
如下:(要特別注意一下flush()和clear()方法的區(qū)別,因?yàn)樾枨蟛煌绦蚴遣煌模?
PageContext 實(shí)現(xiàn)了抽象類 JspContext ,方法:pushBody(), 保存當(dāng)前的out對(duì)象
public abstract class BodyContent
extends JspWriter
out 內(nèi)置對(duì)象
2012-12-31 8:59:21 org.apache.catalina.core.StandardWrapperValve invoke
嚴(yán)重: Servlet.service() for servlet jsp threw exception
java.io.IOException: Stream closed
...
百思不得其解,翻出 jsp 轉(zhuǎn)成 servlet 后的代碼。如下(很很的醒目一下):
復(fù)制代碼 代碼如下:
...
}catch(Exception e){
e.printStackTrace();
}finally{
out.flush(); //
out.close();// 此處為源始代碼
DBHelper.freeConnection(connection);
}
out.write('\r'); // 如上我已經(jīng)關(guān)了 out 對(duì)象,但此處還在使用,所以便產(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);
}
...
解決辦法:把程序中加紅加粗的代碼改成:
復(fù)制代碼 代碼如下:
out.flush() ;
out = pageContext.pushBody(); // 關(guān)于該段程序的解釋,doc中已經(jīng)說(shuō)的很清楚。
如下:(要特別注意一下flush()和clear()方法的區(qū)別,因?yàn)樾枨蟛煌绦蚴遣煌模?
abstract void |
flush()Flush the stream. |
abstract void |
clear()Clear the contents of the buffer. |
PageContext 實(shí)現(xiàn)了抽象類 JspContext ,方法:pushBody(), 保存當(dāng)前的out對(duì)象
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)置對(duì)象
您可能感興趣的文章:
- 解決springboot報(bào)錯(cuò)Failed?to?parse?multipart?servlet?request;?nested?exception?is?java.io.IOException問(wèn)題
- 什么情況下會(huì)出現(xiàn)java.io.IOException?:?Broken?pipe這個(gè)錯(cuò)誤以及解決辦法
- 解決Spring調(diào)用Feign報(bào)錯(cuò):java.io.IOException:Incomplete output stream問(wèn)題
- java.io.IOException:?UT010029:?Stream?is?closed異常分析及解決
- Android創(chuàng)建文件時(shí)出現(xiàn)java.io.IOException:?Operation?not?permitted異常的解決方法
- java.io.IOException:你的主機(jī)中的軟件中止了一個(gè)已建立的連接踩坑實(shí)戰(zhàn)
- 解決Java中的java.io.IOException: Broken pipe問(wèn)題
- AndroidApk混淆編譯時(shí),報(bào)告java.io.IOException...錯(cuò)誤解決辦法
- Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=111
相關(guān)文章
jsp中利用jquery+ajax在前后臺(tái)之間傳遞json格式參數(shù)
前后臺(tái)之間的參數(shù)傳遞一直是個(gè)問(wèn)題,經(jīng)過(guò)一段時(shí)間的實(shí)驗(yàn)琢磨,終于搞定,先把經(jīng)驗(yàn)?zāi)贸鰜?lái)與大家分享,希望可以讓新手朋友們少走彎路2013-10-10
Struts2 OGNL調(diào)用公共靜態(tài)方法詳細(xì)介紹
這篇文章主要介紹了Struts2 OGNL調(diào)用公共靜態(tài)方法詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-01-01
jsp只在首次加載時(shí)調(diào)用action實(shí)現(xiàn)代碼
如何只在首次加載時(shí)調(diào)用action,實(shí)現(xiàn)很簡(jiǎn)單只需判斷l(xiāng)ist==null即可,感興趣的朋友可以參考下2013-10-10
jsp要實(shí)現(xiàn)屏蔽退格鍵問(wèn)題探討
在jsp中的查詢條件中,輸入框中內(nèi)容可按“Backspace”鍵進(jìn)行刪除,但是下拉框中需要屏蔽backspace功能,否則就回執(zhí)行頁(yè)面的回退功能2013-08-08
Jsp連接Access數(shù)據(jù)庫(kù)(不通過(guò)建立ODBC數(shù)據(jù)源的方法)
Jsp連接Access數(shù)據(jù)庫(kù)(不通過(guò)建立ODBC數(shù)據(jù)源的方法)...2007-02-02
如何在Jsp中使用JDBC來(lái)聯(lián)結(jié)MySql
如何在Jsp中使用JDBC來(lái)聯(lián)結(jié)MySql...2006-10-10

