首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

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

2014-01-26 
java.lang.IllegalStateException:Cannot forward after response has been committed java.lang.IllegalSt

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,或者请求/响应超时) 失效后才派发会有异常

具体你分析源代码吧

        

热点排行