分页程序

<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.sql.*"%>
<%@page import="javax.sql.*"%>
<%@page import="javax.naming.*"%>
<html>
 <head>
  <title>
   分页程序
  </title>
 </head>
 <body>
  <%
   Connection con = null;
   PreparedStatement prep = null;
     ResultSet rs = null;
     String sql="select userName, userPassword from login";
   //查找命名空间
   Context ctxt =  new InitialContext();
   //查找DataSource
   DataSource ds = (DataSource)ctxt.lookup("java:comp/env/jdbc/xxx");
   con = ds.getConnection();
   try
   {
    prep = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
    rs = prep.executeQuery();    
    /*注意结果集为空时*/
    rs.last();
   }
   catch(Exception e)
   {
    out.println("ERROR");
   }
  %>
  <%
   //待显示页码
   int intPage = 0;
   //每页显示的记录条数
   int intPageSize = 2;
   //总记录条数
   int intRowCount = rs.getRow();
   //总的页面数
   int intPageCount = (intRowCount + intPageSize -1)/intPageSize;
   int i = 1;
   /*先转换为String类型,若直接转换为int类型,那么由于第一次为空则会产生异常*/
   String strPage = request.getParameter("tt");
   
    if(strPage==null)
    {
     intPage=1;
    }
    else
    {
     intPage=Integer.parseInt(strPage);
     if(intPage<1)  intPage = 1;
    }
    /*这里的判断是为了在显示最后的一页记录后,点击下一页时链接到指定的页面*/
   if(intPage>intPageCount) intPage = 1;
  %>
  
  <table border="1">
  <%    
   rs.absolute((intPage-1)*intPageSize+1);

   while(i<=intPageSize&&!rs.isLast())
   {
  %>
     <tr><td><%=rs.getString(1)%></td><td><%=rs.getString(2)%></td>
  <%
    i++;
     rs.next();
    /*游标在倒数第二条时,执行了next后游标跳转到最后一条,会退出循环,导致最后一条记录无法显示,
     因此需进行判断处理
    */
     if(rs.isLast())  
     {
  %>
      <tr><td><%=rs.getString(1)%></td><td><%=rs.getString(2)%></td>
  <%
     }
   }
   /*若前面发生异常,则con可能无法放回到池中,多次刷新页面会则导致池中链接用完,资源耗尽*/
   try
   {
    rs.close();
    prep.close();
    con.close();
   }
   catch(Exception ex)
   {
    out.println(ex);
   }
  %>
  </table>
  <!--此处可加判断,若为第一页时不显示“上一页”-->
   <a href="page.jsp?tt=<%=intPage-1%>">上一页</a>
   &nbsp;&nbsp;&nbsp;&nbsp;
   <a href="page.jsp?tt=<%=intPage+1%>">下一页</a>

 </body>
</html> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值