getOutputStream() has already been called for this response问题的解决
来源:互联网 发布:mac office用户名修改 编辑:程序博客网 时间:2024/04/28 09:31
getOutputStream() has already been called for this response问题的解决
在jsp向页面输出图片的时候,使用response.getOutputStream()会有这样的提示:java.lang.IllegalStateException:getOutputStream() has already been called for this response,会抛出Exception
原因一:
JSP默认的输出流为PrintWriter ,即<% %>以外的东西所默认的输出方式,如果你尝试在JSP中使用ServletOutputStream就会引起错误.要嘛直接改用Servlet输出(复写service方法),要嘛删除除%><%中的任何东西(包括HTML标签,空格,回车等东西)应该就可以。
对于这样的情况应该这样来解决,删除%><%之间的所有内容包括空格和换行符,最后也要消除空格和换行符,最好再加上一句response.reset()。
原因二:
在J2EE的API参考里有这么个:
ServletResponse的getWriter()方法里会抛出这个异常,
IllegalStateException - if the getOutputStream method has already been called
for this response object
而它的getOutputStream()方法里会抛出这个异常.
IllegalStateException - if the getOutputStream method has already been called for this response object
并且两者的函数申明里都有这么样的一句
Either this method or getOutputStream() may be called to write the body, not both.
Either this method or getWriter() may be called to write the body, not both.
ServletResponse的getWriter()方法里会抛出这个异常,
IllegalStateException - if the getOutputStream method has already been called
for this response object
而它的getOutputStream()方法里会抛出这个异常.
IllegalStateException - if the getOutputStream method has already been called for this response object
并且两者的函数申明里都有这么样的一句
Either this method or getOutputStream() may be called to write the body, not both.
Either this method or getWriter() may be called to write the body, not both.
OutputStream output=response.getOutputStream();
while((len=in.read(b)) >0)
{
output.write(b,0,len);
}
output.flush();
while((len=in.read(b)) >0)
{
output.write(b,0,len);
}
output.flush();
而不是把response.getOutputStream().write()放到循环体内
- getOutputStream() has already been called for this response的解决
- (生成excel)解决getOutputStream() has already been called for this response java getOutputStream()的问题
- getOutputStream() has already been called for this response问题的解决
- getOutputStream() has already been called for this response问题的解决
- jsp 图片 验证码 getOutputStream() has already been called for this response 问题的解决
- getOutputStream() has already been called for this response问题的解决
- getOutputStream() has already been called for this response问题的解决
- getOutputStream() has already been called for this response问题的解决
- Str问题java.lang.IllegalStateException: getOutputStream() has already been called for this response的解决
- getOutputStream() has already been called for this response 错误解决
- getOutputStream() has already been called for this response 错误解决
- 解决getOutputStream() has already been called for this response
- 解决getOutputStream() has already been called for this response
- 解决getOutputStream() has already been called for this response
- 解决getOutputStream() has already been called for this response
- 解决getOutputStream() has already been called for this response
- 解决getOutputStream() has already been called for this response
- 解决getOutputStream() has already been called for this response
- 你能用怪人吗?
- javascript小技巧
- 三星手机秘籍
- c++ const 指针学习
- 谨记历史的这一天
- getOutputStream() has already been called for this response问题的解决
- 学习SQL server2005
- VC编程实现数字图像的边缘检测
- 今天调试一个WebPart的简单程序出现的问题
- 天车
- 一道有趣的SQL题目
- 科学家总结出寿命公式,想知道你究竟能活多久吗?那就算一下吧
- 首记
- 新的生活新的开始