IllegalStateException: getOutputStream() 異常的解決方案

在寫JSP程序的時候,如果程序中調用了response.getOutputStream()去向客戶端輸出文件等數據流,容器就會拋出這樣的異常:
Java.lang.IllegalStateException: getOutputStream() has already been called for this response
        at org.apache.catalina.connector.Response.getWriter(Response.java:596)
        at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:186)
  產生這樣的異常原因:是web容器生成的servlet代碼中有out.write(""),這個和JSP中調用的response.getOutputStream()產生衝突.即Servlet規範說明,不能既調用response.getOutputStream(),又調用response.getWriter(),無論先調用哪一個,在調用第二個時候應會拋出IllegalStateException,因爲在jsp中,out變量實際上是通過response.getWriter得到的,你的程序中既用了response.getOutputStream,又用了out變量,故出現以上錯誤。
  解決方案:在程序的最後添加:
out.clear();
out = pageContext.pushBody();
就可以了。

http://blog.erp100.com/html/39/3639-1547.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章