急,高手救命!getOutputStream() Exception (第二次发帖)
森蘭丸 2004-11-24 04:00:39 <%@ page contentType="text/html; charset=GBK" language="java" import="java.sql.*" errorPage="" %>
<jsp:useBean id="Excel" scope="session" class="college.Excel"/>
<jsp:useBean id="EditCon" scope="session" class="college.Contracts"/>
<html>
<head>
<title>
enabling entry fields
</title>
</head>
<body bgcolor="#ffffff">
<%!ResultSet rs; %>
<%
rs = EditCon.queryAll();
response.reset();
response.setContentType("application/vnd.ms-excel");
Excel.db2Excel(response.getOutputStream(),rs,"Test",0);//
%>
</body>
</html>
执行时出现:
java.lang.IllegalStateException: getOutputStream() has already been called for this response
org.apache.coyote.tomcat5.CoyoteResponse.getWriter(CoyoteResponse.java:599)
org.apache.coyote.tomcat5.CoyoteResponseFacade.getWriter(CoyoteResponseFacade.java:163)
org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:122)
org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:115)
org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:190)
org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
org.apache.jsp.test_005fexcel_jsp._jspService(test_005fexcel_jsp.java:94)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
我有写response.reset();呀!为什么呢?高手来指点一下,谢谢
…………………………………………EditCon.queryAll()……………………………………………………
public ResultSet queryAll(){
ResultSet rsResult = null;
Connection myConn = this.getdbConn();
try{
String sSql = "SELECT * FROM table";
Statement stSql = myConn.createStatement();
rsResult = stSql.executeQuery(sSql);
}catch(Exception e){
this.dbException = e.toString();
rsResult = null;
}
return rsResult;
}
………………………………Excel.db2Excel()……………………………………
public void db2Excel(OutputStream os,ResultSet _rsSql,String _WsName,int _Position) throws IOException, SQLException, WriteException {
try{
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(os);
jxl.write.WritableSheet ws = wwb.createSheet(_WsName, _Position);
//获取记录总数
_rsSql.last();
int intRowCount = _rsSql.getRow();
ResultSetMetaData rmeta = _rsSql.getMetaData();
//获得数据字段个数
int numColumns = rmeta.getColumnCount();
for(int i=1; i<intRowCount; i++){
for(int j=0; j+1<numColumns; j++){
String str = _rsSql.getString(j+1);
jxl.write.WritableCell label = new Label(j,i,str);
ws.addCell(label);
}
}
wwb.write();
wwb.close();
}catch(Exception e){
this.dbException = e.toString();
}
}
………………………………………………………………………………