getOutputStream() has already been called for this response异常的原因和解决方法
今天在調(diào)試一個(gè)小web項(xiàng)目時(shí),驗(yàn)證碼不顯示了,而且后臺(tái)報(bào)錯(cuò)
getOutputStream() has already been called for this response
經(jīng)過查找得知:
在tomcat6.0下jsp中出現(xiàn)此錯(cuò)誤一般都是在jsp中使用了輸出流(如輸出圖片驗(yàn)證碼,文件下載等),沒有妥善處理好的原因。
具體的原因就是:
在tomcat中jsp編譯成servlet之后在函數(shù)_jspService(HttpServletRequest request, HttpServletResponse response)的最后有一段這樣的代碼
這里是在釋放在jsp中使用的對(duì)象,會(huì)調(diào)用response.getWriter(),因?yàn)檫@個(gè)方法是和response.getOutputStream()相沖突的!所以會(huì)出現(xiàn)以上這個(gè)異常。
然后當(dāng)然是要提出解決的辦法,其實(shí)挺簡(jiǎn)單的(并不是和某些朋友說的那樣--將jsp內(nèi)的所有空格和回車符號(hào)所有都刪除掉),在使用完輸出流以后調(diào)用以下兩行代碼即可:
out.clear(); out = pageContext.pushBody();參考博客:使勁點(diǎn)我啊
?
轉(zhuǎn)載于:https://www.cnblogs.com/xiaoduc-org/p/5729496.html
總結(jié)
以上是生活随笔為你收集整理的getOutputStream() has already been called for this response异常的原因和解决方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工作中常用到的sql命令!!!
- 下一篇: date命令的总结