我用的是resin-1.2.10当我在执行如下代码时:<%@page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<html>
<head></head>
<body>
<jsp:useBean id="db" scope="page" class="opendb.opendb"/>
<%
String sql="select * from t";
ResultSet rs=db.executeQuery(sql);
db.closedb();
%>
<table>
<%
  while (rs.next())
  { 
%>
  <tr> 
    <td height="21"><%=rs.getInt("id")%></td>
    <td><%=rs.getString("name")%></td>
  </tr>  <%
  }
  rs.close();
  %>
  </table>
</body>
</html>产生了如下出错信息:500 Servlet Exception
java.sql.SQLException: ResultSet is closed
at sun.jdbc.odbc.JdbcOdbcResultSet.checkOpen(JdbcOdbcResultSet.java:6455)
at sun.jdbc.odbc.JdbcOdbcResultSet.next(JdbcOdbcResultSet.java:1233)
at _jsp._index__jsp._jspService(/index.jsp:15)
at com.caucho.jsp.JavaPage.service(JavaPage.java:87)
at com.caucho.jsp.JavaPage.subservice(JavaPage.java:81)
at com.caucho.jsp.Page.service(Page.java:410)
at com.caucho.server.http.Invocation.service(Invocation.java:319)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:121)
at com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java:157)
at com.caucho.server.http.QRequestDispatcher.forward(QRequestDispatcher.java:76)
at com.caucho.server.http.FileServlet.service(FileServlet.java:253)
at com.caucho.server.http.Invocation.service(Invocation.java:325)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:121)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:239)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:157)
at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
at java.lang.Thread.run(Thread.java:536)
————————————————————————————
我用的javabeans:package opendb;
import java.sql.*;public class opendb
{
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr="jdbc:odbc:JSP";
Connection conn;
//ResultSet rs;

public opendb()
{
try
{
Class.forName(sDBDriver);
conn=DriverManager.getConnection(sConnStr,"","");
}
catch(Exception e)
{
System.err.println("opendb():"+e.getMessage());
} }

public ResultSet executeQuery(String sql)
{
ResultSet rs=null;
Statement stmt=null;
try
{
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
//stmt.close();
}
catch(SQLException e)
{
System.err.println("aq.executeQuery:"+e.getMessage());
}

return rs;
}

public int executeUpdate(String sql)
{
int i=0;
Statement stmt=null;
try
{
stmt=conn.createStatement();
i=stmt.executeUpdate(sql);
stmt.close();
}
catch(SQLException e)
{
System.err.println("aq.executeQuery:"+e.getMessage());
}
return i;
}

public void closedb()
{
try
{
//rs.close();
conn.close();
conn=null;
}
catch(SQLException e)
{
System.err.println("!aq.executeQuery:"+e.getMessage());
}
}
}