在一个showImage.jsp的页面里面,
使用response.getOutputStream()得到输出流,然后将图片显示出来,
但每次执行,控制台都报错
java.lang.IllegalStateException: getOutputStream() has already been called for this response
图片也能出来,这是为什么?如何解决?
...全文
53116打赏收藏
response.getOutputStream()产生的问题,能解决立即给100分
在一个showImage.jsp的页面里面, 使用response.getOutputStream()得到输出流,然后将图片显示出来, 但每次执行,控制台都报错 java.lang.IllegalStateException: getOutputStream() has already been called for this response 图片也能出来,这是为什么?如何解决?
注意“has already been called ”,你自己获得的OutputStream 和jsp内置的out对象是冲突的,不能同时在一个jsp里面调用,所以在你的那个jsp里面不能出现任何调用out的可能性(无论是隐性的还是显性的),尤其难处理的是系统自身的调用,因为jsp本身是编译成servlet来执行的,即便你的jsp里无一处调用out,在它对应的servlet中也可能调用了,具体在什么情况下会调用我没有深究,似乎记得是那个页面什么也别显示,一上来就调用你自己的输出流,应该就会OK,Exception的原因基本上就是这样,如何解决我不是很确定不过知道原因离解决就不远了,你再摸索摸索吧,应该可以给我50分吧,哈哈hoho