myjavaBlog

          工作越努力學到的越多。
          posts - 4, comments - 7, trackbacks - 0, articles - 34

          tomcat5下jsp出現getOutputStream() has already been called for this response異常的原因和解決方法


          在tomcat5下jsp中出現此錯誤一般都是在jsp中使用了輸出流(如輸出圖片驗證碼,文件下載等),
          沒有妥善處理好的原因。
          具體的原因就是
          在tomcat中jsp編譯成servlet之后在函數_jspService(HttpServletRequest request, HttpServletResponse response)的最后
          有一段這樣的代碼
          finally {
                 if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
               }
          這里是在釋放在jsp中使用的對象,會調用response.getWriter(),因為這個方法是和
          response.getOutputStream()相沖突的!所以會出現以上這個異常。

          然后當然是要提出解決的辦法,其實挺簡單的(并不是和某些朋友說的那樣--
          將jsp內的所有空格和回車符號所有都刪除掉),

          在使用完輸出流以后調用以下兩行代碼即可:
          out.clear();
          out = pageContext.pushBody();
           

          主站蜘蛛池模板: 逊克县| 永丰县| 九台市| 白沙| 大新县| 虎林市| 秀山| 大化| 柳林县| 托克托县| 定安县| 沈丘县| 万宁市| 汝南县| 子长县| 曲水县| 洛南县| 大足县| 正阳县| 沧州市| 庄河市| 江口县| 光山县| 宽甸| 高青县| 米脂县| 花垣县| 锡林郭勒盟| 太和县| 晋宁县| 潜山县| 宕昌县| 海伦市| 英德市| 乳源| 鹿泉市| 孝义市| 任丘市| 桦南县| 交口县| 平顺县|