我也遇到了這個(gè)問(wèn)題,所以把它貼出來(lái),大家了解一下。
在tomcat5下jsp中出現(xiàn)此錯(cuò)誤一般都是在jsp中使用了輸出流(如輸出圖片驗(yàn)證碼,文件下載等),
沒(méi)有妥善處理好的原因。
具體的原因:
在tomcat中jsp編譯成servlet之后在函數(shù)_jspService(HttpServletRequest request, HttpServletResponse response)的最后
有一段這樣的代碼
finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
這里是在釋放在jsp中使用的對(duì)象,會(huì)調(diào)用response.getWriter(),因?yàn)檫@個(gè)方法是和
response.getOutputStream()相沖突的!所以會(huì)出現(xiàn)以上這個(gè)異常。
在使用完輸出流以后調(diào)用以下兩行代碼即可:
out.clear();
out = pageContext.pushBody();
最后這里是一個(gè)輸出彩色驗(yàn)證碼例子(這樣的例子幾乎隨處可見(jiàn)),以下為代碼的一部分:
ImageIO.write(image, " JPEG " ,os);
os.flush();
os.close();
os = null ;
response.flushBuffer();
out.clear();
out = pageContext.pushBody();
來(lái)源:http://chenlb.blogjava.net/archive/2007/05/26/104714.html#
posted @ 2009-02-11 15:34 斷點(diǎn) 閱讀(236) | 評(píng)論 (0)