我的页面代码,就是查询一个表的所有数据,在页面上显示出来,另外做了一个分页
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<jsp:useBean id="conn" scope="page" class="test.AccessBean" />
<body>
<%!  
  ResultSet rs1 = null;
  ResultSet rs2 = null;
  int max;
  int pagesize=10;
  int tatalpage=0;
 int Page;
 String id=null;
  String flag;
 %>
<table width="300" border="1">
  <tr>
  <td>登记证号</td>
  <td>发布单位名称</td>
  <td>发布地点及具体位置</td>
  <td>起始时间</td>
  <td>到期时间</td>
  <td>广告形式、数量及规格</td>
  <td>广告名称</td>
  <td>广告样件编号</td>
  <td>备注</td>
<td>操作</td>
  </tr>
  <%  
  request.setCharacterEncoding("gb2312");  String s1 = "select count(id) as mycount from adIdex ";  
  rs1 = conn.query(s1);
  int count=0;
  if(rs1.next()){
  count = rs1.getInt("mycount");
}
  rs1.close();
  if(count%pagesize==0) {tatalpage=count/pagesize;
  }
  else {tatalpage=(int)(Math.floor(count/pagesize))+1;}
  if(tatalpage==0) {tatalpage=1;}
  String shuru = request.getParameter("yeshu");
  try{
  if(shuru==null||shuru.equals(""))
{
Page = 1;
}else
{
  if(Integer.parseInt(shuru)<0)
{
Page = 1;
}
else if(Integer.parseInt(shuru)>tatalpage)
{
Page = tatalpage;
}
else
{
Page = Integer.parseInt(shuru);
}
  
}
  }catch(Exception e)
  {
  Page = 1;
  }
  rs2 = conn.query("select * from adIndex order by id desc");  if(rs2.absolute((Page-1)*pagesize+1)){
for(int i=0;i<pagesize;i++)
  {
id=rs2.getString("id");
  %>
  <tr>
  <td><%=rs2.getString("adId")%></td>
  <td><%=rs2.getString("comName")%></td>
  <td><%=rs2.getString("adPlace")%></td>
  <td><%=rs2.getString("fromTime")%></td>
  <td><%=rs2.getString("toTime")%></td>
  <td><%=rs2.getString("adData")%></td>
  <td><%=rs2.getString("adName")%></td>
  <td><%=rs2.getString("adPieceId")%></td>
  <td><%=rs2.getString("adRe")%></td>
<td><div align="center"><a href="tradeAdd.jsp?id=<%=id %>"> 打印</a></div></td>
  </tr>
  <%  
if(!rs2.next()) break;
}
}
  rs2.close();
  %>
</table></body>
</html>运行时tomcat报错信息
org.apache.jasper.JasperException: An exception occurred processing JSP page /adIndex.jsp at line 7471: }
72: rs2 = conn.query("select * from adIndex order by id desc");
73: 
74: if(rs2.absolute((Page-1)*pagesize+1)){
75: for(int i=0;i<pagesize;i++)
76: {
77: id=rs2.getString("id");
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:515)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:408)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause  javax.servlet.ServletException: java.sql.SQLException: ResultSet is closed
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:855)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:784)
org.apache.jsp.adIndex_jsp._jspService(adIndex_jsp.java:192)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause  java.sql.SQLException: ResultSet is closed
sun.jdbc.odbc.JdbcOdbcResultSet.checkOpen(Unknown Source)
sun.jdbc.odbc.JdbcOdbcResultSet.absolute(Unknown Source)
org.apache.jsp.adIndex_jsp._jspService(adIndex_jsp.java:137)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.问题,在哪里呢,我是照着以前一个页面改的,大家帮我指点一下吧!非常感谢!

解决方案 »

  1.   

    ResultSet is closed
    结果集已经关闭。
      

  2.   

    if(rs2.absolute((Page-1)*pagesize+1)){  估计是这一句搞的鬼  !修改为 if(rs2.absolute(1){  试试 符:
    boolean absolute(int row)    throws SQLException将光标移动到此 ResultSet 对象的给定行编号。 
    如果行编号为正,则将光标移动到相对于结果集开头的给定行编号。第一行为行 1,第二行为行 2,依此类推。 如果给定行编号为负,则将光标移动到相对于结果集末尾的绝对行位置。试图将光标置于结果集的第一行/最后一行之外将导致光标位于第一行之前或最后一行之后。 注:调用 absolute(1) 等效于调用 first()。调用 absolute(-1) 等效于调用 last()。 
    参数:
    row - 光标应该移动到的行的编号。正的编号指示从结果集开头开始计数的行编号;负的编号指示从结果集末尾开始计数的行编号 
    返回:
    如果光标移动到此 ResultSet 对象的位置处,则返回 true;如果光标在第一行的前面或最后一行的后面,则返回 false 
    抛出: 
    SQLException - 如果发生数据库访问错误;在已关闭的结果集上调用此方法或结果集类型为 TYPE_FORWARD_ONLY 
    SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法