首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OutputStream的问题

OutputStream的问题
EN

Stack Overflow用户
提问于 2011-02-14 22:53:29
回答 3查看 499关注 0票数 0

我读过Servlet Exception - getOutputStream() has already been called for this response,但我没有找到任何解决我的问题的方法。

在我的main.jsp中,我有这样一条语句:

代码语言:javascript
复制
<img src="ImageElaborator.jsp" style="float: left" alt="" height="70" width="70"/>

在我的ImageElaborator.jsp中:

代码语言:javascript
复制
byte[] photo = getPhoto();
response.getOutputStream().write(photo, 0, photo.length);

这段代码显示了我的图像,但我有以下错误:

代码语言:javascript
复制
java.lang.IllegalStateException: getOutputStream() has already been called for this response

我不明白我该怎么解决这个问题。请帮帮我!

EN

回答 3

Stack Overflow用户

发布于 2011-02-14 23:00:43

不要在JSP中这样做。在servlet中执行此操作。

票数 1
EN

Stack Overflow用户

发布于 2011-02-14 23:01:05

您不应该将这样的代码放在JSP中,因为在执行代码时,JSP开头的一些空格、换行符等可能已经发送到JSP的输出流。

JSP应该用于输出文本或标记,而不是用于执行业务逻辑和将原始字节发送到输出流。您应该将这种代码放在servlet中,或者放在您喜欢的MVC框架(Struts、Stripes、Spring MVC等)的操作中。

票数 1
EN

Stack Overflow用户

发布于 2011-02-14 23:01:12

在JSP中,您不应该调用会话,因为它被定义为隐式变量,请参见隐式会话和对象:http://www.exforsys.com/tutorials/jsp/jsp-implicit-and-session-objects.html

我认为这样的事情应该是可以的:

代码语言:javascript
复制
byte[] photo = getPhoto();
out.write(photo, 0, photo.length);

但最好的方法是使用Servlet。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4993585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档