我读过Servlet Exception - getOutputStream() has already been called for this response,但我没有找到任何解决我的问题的方法。
在我的main.jsp中,我有这样一条语句:
<img src="ImageElaborator.jsp" style="float: left" alt="" height="70" width="70"/>在我的ImageElaborator.jsp中:
byte[] photo = getPhoto();
response.getOutputStream().write(photo, 0, photo.length);这段代码显示了我的图像,但我有以下错误:
java.lang.IllegalStateException: getOutputStream() has already been called for this response我不明白我该怎么解决这个问题。请帮帮我!
发布于 2011-02-14 23:00:43
不要在JSP中这样做。在servlet中执行此操作。
发布于 2011-02-14 23:01:05
您不应该将这样的代码放在JSP中,因为在执行代码时,JSP开头的一些空格、换行符等可能已经发送到JSP的输出流。
JSP应该用于输出文本或标记,而不是用于执行业务逻辑和将原始字节发送到输出流。您应该将这种代码放在servlet中,或者放在您喜欢的MVC框架(Struts、Stripes、Spring MVC等)的操作中。
发布于 2011-02-14 23:01:12
在JSP中,您不应该调用会话,因为它被定义为隐式变量,请参见隐式会话和对象:http://www.exforsys.com/tutorials/jsp/jsp-implicit-and-session-objects.html
我认为这样的事情应该是可以的:
byte[] photo = getPhoto();
out.write(photo, 0, photo.length);但最好的方法是使用Servlet。
https://stackoverflow.com/questions/4993585
复制相似问题