0 0

java.io.IOException: response already committed10

下面是我的一个JSP页面    
long docID = ParamUtils.getLongParameter(request,"docid",0l);
    String filename=docID + ".doc";
response.reset();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename="+filename);

String sql ="Select filedata  from document  where docID=?  " ;  
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs=null;
java.io.OutputStream outStream =null;
java.io.InputStream inStream=null;

try {
conn=ConnOper.getConn();
pstmt=conn.prepareStatement(sql);
pstmt.setLong(1, docID);
rs=pstmt.executeQuery();
if(rs.next())
{
    inStream = rs.getBinaryStream(1);
    outStream = response.getOutputStream();
byte[] buf = new byte[1024];
int bytes = 0;
while((bytes = inStream.read(buf)) != -1)
outStream.write(buf, 0, bytes);
}
} catch (Exception e) {
//e.printStackTrace();
}finally{
    ConnOper.close(conn, pstmt ,rs);
    inStream.close();
    outStream.flush();
outStream.close();
out.clear();
out = pageContext.pushBody();
response.flushBuffer();
response.reset();

}

我的系统有很多页面都报这个错。。。。。。很是悲剧。。。
各位高手赶紧帮忙出招~~~~~~
2011年3月22日 10:02

3个答案 按时间排序 按投票排序

0 0

inStream.close();
    outStream.flush();
outStream.close();
out.clear();
这个逻辑是不是有问题?????

2011年4月07日 22:26
0 0

out = pageContext.pushBody();
不在其前面加out.clear();
在其后面加:out.flush();试试

2011年3月22日 10:18
0 0

你把out.clear(); 去掉试试看

2011年3月22日 10:13

相关推荐

Global site tag (gtag.js) - Google Analytics