java翻页处理(转)

(转http://blog.sina.com.cn/s/blog_44b50ff001009fqa.html)
JSP翻页的方法有很多,我在做学生管理系统的时候,就一直在想用什么方法来实现翻页。首先看一个最简单的方法:

<%@ page language="java" import="java.util.*,com.liweihua.persistence.*" pageEncoding="gb2312"%>
<%
 //变量声明    
 java.sql.Connection sqlCon; //数据库连接对象    
 java.sql.Statement sqlStmt; //SQL语句对象    
 java.sql.ResultSet sqlRst;  //结果集对象    

 java.lang.String strCon;   //数据库连接字符串    
 java.lang.String strSQL;   //SQL语句    

 int intPageSize;    //一页显示的记录数    
 int intRowCount;    //记录总数    
 int intPageCount;   //总页数    
 int intPage;     //待显示页码    
 java.lang.String strPage;

 int i;

 //设置一页显示的记录数    
 intPageSize = 10;

 //取得待显示页码    
 strPage = request.getParameter("page");
 if (strPage == null) {     //表明在QueryString中没有page这一个参数,此时显示第一页数据    
  intPage = 1;
 } else {        //将字符串转换成整型    
  intPage = java.lang.Integer.parseInt(strPage);
  if (intPage < 1)
   intPage = 1;
 }

 //装载JDBC驱动程序  
 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

 //设置数据库连接字符串   ,你的ODBC名字  
 strCon = "jdbc:odbc:information";

 //连接数据库    
 sqlCon = java.sql.DriverManager.getConnection(strCon, "", "");

 //创建一个可以滚动的只读的SQL语句对象    
 sqlStmt = sqlCon.createStatement(
   java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
   java.sql.ResultSet.CONCUR_READ_ONLY);

 //准备SQL语句    
 strSQL = "select admin_loginname,admin_realname, admin_rank,admin_class_id,admin_duty,admin_phone,admin_logintime from admin order by admin_rank";

 //执行SQL语句并获取结果集    
 sqlRst = sqlStmt.executeQuery(strSQL);

 //获取记录总数    
 sqlRst.last();
 intRowCount = sqlRst.getRow();

 //记算总页数    
 intPageCount = (intRowCount + intPageSize - 1) / intPageSize;

 //调整待显示的页码    
 if (intPage > intPageCount)
  intPage = intPageCount;
%>

<%
 String path = request.getContextPath();
 String basePath = request.getScheme() + "://"
   + request.getServerName() + ":" + request.getServerPort()
   + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <base href="<%=basePath%>">

  <title>管理员信息浏览</title>
     <link href="<%=path%>/main/css/swb.css" rel="stylesheet" type="text/css">
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
 
     <style type="text/css">
<!--
.STYLE1 {color: #660099}
-->
        </style>
</head>
 <body>
 <center>
   <h2><span class="STYLE1">管理员信息浏览</span>     <br>
     <br>
   </h2>
   <table border="1" cellspacing="0" cellpadding="0">
   <tr>
    <th>ID</th>
    <th>姓名</th>
    <th>权限</th>
    <th>班级</th>
    <th>职务</th>
    <th>电话</th>
    <th>最后登陆时间</th>
   </tr>

   <%
     if (intPageCount > 0) {
     //将记录指针定位到待显示页的第一条记录上    
     sqlRst.absolute((intPage - 1) * intPageSize + 1);

     //显示数据    
     i = 0;
     String class_id="";
     String class_statement="";
     ClassDB classdb = new ClassDB();
     while (i < intPageSize && !sqlRst.isAfterLast()) {
   %>
   <tr>
    <td><%=sqlRst.getString(1)%></td>
    <td><%=sqlRst.getString(2)%></td>
    <td><%=sqlRst.getString(3)%></td>
    <%
    //通过班级的ID拿到班级的专业和班号
    class_id = sqlRst.getString(4);
    //给一个班级的ID返回 一个字符串:信息系 XX专业 XX班
    class_statement = classdb.getClassMajorClassbyID(class_id);
     %>
    <td><%=class_statement %></td>
    <td><%=sqlRst.getString(5)%></td>
    <td><%=sqlRst.getString(6)%></td>
    <td><%=sqlRst.getString(7)%></td>
   
   </tr>
   <%
      sqlRst.next();
      i++;
     }
    }
   %>
   </table>
  <BR>
  <BR>
  第<%=intPage%>页   共<%=intPageCount%>页    
  <%
  if (intPage < intPageCount) {
  %><a
   href="admin\admin_browse.jsp?page=<%=intPage + 1%>">下一页</a>
  <%
  }
  %>
  <%
  if (intPage > 1) {
  %><a href="admin\admin_browse.jsp?page=<%=intPage - 1%>">上一页</a>
  <%
  }
  %>
 </center>
 </body>
</html>

<%
 //关闭结果集    
 sqlRst.close();
 //关闭SQL语句对象    
 sqlStmt.close();
 //关闭数据库    
 sqlCon.close();
%>

 

 

这个方法实现了翻页功能,但是发现核心代码都写在了页面上,这样就是造成系统的安全性不高。我也考虑过这个问题,但是由于为系做系统,再加上快考TOEFL了,为了快速开发,我就运用了这个方法。

 

昨天晚上和我的JAVA启蒙老师谈论了关于JAVA翻页技术,我感觉深受启发。翻页应该通过JAVABEAN来实现,传入JAVABEAN一个页数,返回 一个list,而这个list中数据量是通过SQL中的limit这个函数来实现的。这样问题就简单了。我们也学过ASP的翻页,方法和最上面的原始方法 一样,我越来越发现JSP的重要性了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值