日期:2014-05-18  浏览次数:20606 次

java.lang.IllegalStateException错误?
java.lang.IllegalStateException:Cannot   forward   after   response   has   been   committed

java.lang.IllegalStateException:getOutputStream()   has   already   been   called   for   this   response

这两个错误一般在什么情况下出现,解决办法是什么?

有谁遇到过相同的情况吗,你是怎么解决的?

------解决方案--------------------
这是web容器生成的servlet代码中有out.write(””),这个和JSP中调用的response.getOutputStream()产生冲突.
即Servlet 规范说明,不能既调用 response.getOutputStream(),又调用response.getWriter(),无论先调用哪一个,在调用第二个时候应会抛出 IllegalStateException,因为在jsp中,out变量是通过response.getWriter得到的,在程序中既用了 response.getOutputStream,又用了out变量,故出现以上错误。
------解决方案--------------------
pengtao0615(Class 涛) 解释正确!
------解决方案--------------------
第一个的原因是
Response.sendRedirect();后没有加return语句.
------解决方案--------------------
我配置了自己的jsp服务器 诚招jsp虚拟空间代理商 如果有兴趣可以加qq254672366
------解决方案--------------------

第一个的原因是
Response.sendRedirect();后没有加return语句.
-----
对于这个我深有体会,无论如何,加一个~~~
------解决方案--------------------
第一个错误没有经历过 不过看意思是:不能派发,当响应已经提交
应该是你response已经失效了(失效原因可能是你重定向了--sendRedirect,或者请求/响应超时) 失效后才派发会有异常

具体你分析源代码吧