1.在項目中JSP頁面輸出流顯示為圖片時,刷新時,報以下錯誤
getOutputStream() has already been called for this response
index.jsp
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<TABLE>
<TR>
<TD></TD>
</TR>
<TR>
<TD><img src="show.jsp"></TD>
</TR>
</TABLE>
</BODY>
</HTML>
show.jsp
<%@ page contentType="text/html; charset=gbk" %>
<%@ page import="java.io.*"%>
<%@ page import="cn.com.hnisi.visio.image.*"%>
<%
VisioDemo v=new VisioDemo();
v.setVisible(false);
try
{
byte[] image = v.getVisio().createPreview(new File("E:/test/test.vsd"));
response.setContentType("image/jpeg");
OutputStream outs = response.getOutputStream();
outs.write(image);
outs.flush();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
%>
出現錯誤原因是response的數據流沒有釋放
解決辦法
<%@ page contentType="text/html; charset=gbk" %>
<%@ page import="java.io.*"%>
<%@ page import="cn.com.hnisi.visio.image.*"%>
<%
VisioDemo v=new VisioDemo();
v.setVisible(false);
try
{
byte[] image = v.getVisio().createPreview(new File("E:/test/test.vsd"));
response.setContentType("image/jpeg");
OutputStream outs = response.getOutputStream();
outs.write(image);
outs.flush();
outs=null;
response.flushBuffer();
out.clear();
out = pageContext.pushBody();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
%>