自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡單理解Java中的輸出流異常

開發(fā) 后端
本文將幫助大家簡單理解Java中的java.lang.IllegalStateException異常,這一異常經(jīng)常出現(xiàn)在輸出流作業(yè)中。

我們在做文件上傳或者下載,或者過濾等操作時,可能要用到頁面的輸出流.

例如在JSP使用:

response.reset();
response.setContentType(”application/vnd.ms-excel”);
OutputStream s = response.getOutputStream();  

拋出異常:

ERROR [Engine] StandardWrapperValve[jsp]: Servlet.service()
for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream()
has already been called for this response

從網(wǎng)上找了下資料,綜合一下原因分析:

這是WEB容器生成的servlet代碼中有out.write(””),這個和JSP中調(diào)用的response.getOutputStream()產(chǎn)生沖突。即Servlet規(guī)范說明,不能既調(diào)用 response.getOutputStream(),又調(diào)用response.getWriter(),無論先調(diào)用哪一個,在調(diào)用第二個時候應會拋出 IllegalStateException,因為在jsp中,out變量是通過response.getWriter得到的,在程序中既用了response.getOutputStream,又用了out變量,故出現(xiàn)以上錯誤。

解決方案:

1.在程序中添加:
out.clear();
out = pageContext.pushBody();
就可以了;

2,不要在%][%之間寫內(nèi)容包括空格和換行符

3,在頁面寫入圖片的時候,需要

flush()
 OutputStream utput=response.getOutputStream();
 output.flush();

4,在頁面確定寫入

【編輯推薦】

  1. Java開發(fā)者需要注意的十條法則
  2. Java歷史回顧:開發(fā)人員十大問答
  3. 漫步云端 Java開發(fā)者的新選擇
責任編輯:彭凡 來源: ITPUB空間
相關推薦

2011-11-28 09:25:36

Java輸入輸出

2023-12-11 14:19:00

Java程序異常

2009-06-12 18:54:46

異常程序開發(fā)

2023-05-28 13:09:47

Java異常應用

2025-01-09 12:01:53

2015-12-28 11:25:51

C++異常處理機制

2020-12-01 08:47:36

Java異常開發(fā)

2013-06-05 10:11:20

索引器C#

2009-06-11 10:25:36

Java GC幽靈引用

2014-03-12 10:19:54

iOS對象

2013-01-06 15:21:29

2009-06-25 14:05:40

Java應用技巧

2020-07-02 22:42:18

Java異常編程

2022-01-19 09:00:00

Java空指針開發(fā)

2019-11-21 08:51:56

Java異常控制流

2021-01-21 14:06:57

云計算

2009-04-13 13:21:58

DB2編目catalog

2021-07-15 23:16:09

IO異常排查

2013-04-07 10:01:26

Java異常處理

2017-01-12 19:34:58

點贊
收藏

51CTO技術棧公眾號