java.lang.IllegalStateExecption: getOutputStream() has already been called for this response谢了!多多指教

解决方案 »

  1.   

     在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();参考http://blog.csdn.net/wienne0417/archive/2009/06/22/4288078.aspx
      

  2.   

    getOutputStream()这个方法在这个请求中已经被调用过一次。
      

  3.   

    把在页面转到error页面中 并打印出exception 空指针的Exception - -!!!问题解决 上面的exception报的很希奇 后来发现这里比较特殊在这里我大意说下:如果在page1页面中include页面page2   如果在page2里因为某些原来导致出错 比如说空指针这样的错误 servlet会将 jsp的内置对象out close掉
    但 servlet还继续读取page1页面里的内容 当此时因为out被关闭掉 就会报出上面的错误
    其实这个时候打印出jsp的内置对象exception查看就会发现具体的错误
    如果在jsp中嵌入<% %>类似的java代码,在这段代码中出现EXception 就会报出getOutputStream() has already been called for this response错误。
    从这次发现错误发现 在不同的环境下报出的同一个错误 会有不同的解释 http://hi.baidu.com/luxuetao/blog/item/4135c717c010740cc93d6d83.html
      

  4.   

    看看你的结贴率。。无语了,
    你就把你的错误放到google中,点击一下鼠标,答案成把成把的。
      

  5.   

    getOutputStream()这个方法只能调用一次