Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Jsp数据分页

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

Jsp数据分页

作者: 何双江

关键字: Java jsp 数据分页 yarshray 何双江

 

关于Web应用中数据分页似乎是个很常见的话题,虽然很多人都写过类似的文章,不过我还是想把我的观点用文字表达出来,虽然没有什么新意,不过或多或少总会给各位一点点帮助的.

首先.对于数据分页,我的理解是在给定当前页号和每页有多少条记录的,以及必须知道总共有多少条记录的前提条件下,对总共多少页,和当前显示记录范围的问题.那么根据以上分析我大体知道,如下问题:

       已知条件: 当前页号  每页记录数  总记录数

       1求页面总数:

              总页数=总记录数/每页记录数;

              IF总记录数mod每页记录数 //对于有余数,即不能整除的情况下

              Begin

                     总页数=总页数+1;

              End

       `2求当前记录范围

              当前首记录=当前页号/总页数 * 总记录数

              当前尾记录=当前首记录+每页记录数-1;

 

那么这里我们就可以根据以上分析完成数据分页代码.

 

代码示例如下:

<%@ page import="java.sql.*" %>

<%@ page import="java.util.*" %>

 

<%!

       int nowPageNum=0;//当前页号

       int onePageCount=10;//每页记录数(目前假设为10)

       int allRecordCount=91;//总记录数(目前假设为91s)

       int allPageCount=0;//总页数

       int nowFirst=0;//当前首记录

       int nowLast=0;//当前尾记录

%>

 

<%-- page init --%>

<%

       //得到总页数

       allPageCount=allRecordCount/onePageCount;

       if((allRecordCount%onePageCount) > 0){

              allPageCount++;

       }

 

       //得到当前记录范围

       if(request.getParameter("nowPageNum") != null){

       nowFirst=(int)((allRecordCount*Integer.parseInt((String)request.getParameter("nowPageNum"))/allPageCount));

       }

       nowLast=nowFirst+onePageCount-1;

%>

 

<%-- 数据初始化 --%>

<%

       Class.forName("数据驱动程序名");

       String url="jdbc:url名称 ";

       Connection conn=DriverManager.getConnection(url);

       java.sql.Statement cmd=conn.createStatement();

       String sql="SQL查询语句";

       ResultSet rs=cmd.executeQuery(sql);

       ArrayList al=new ArrayList();

      

       //移动到最当前页首记录

       for(int i=0;i<nowFirst;i++){

              rs.next();

       }

       //取首记录到尾记录

       for(int j=nowFirst;j<=nowLast;j++){

              if(rs.next()){

                     al.add(rs.getString("CustomerID"));

              }else{

                     break;

              }

       }

 %>

 <%-- 显示表格 --%>

 

 <html>

      <body>

             <table>

                    <tr>

                           <th>ID</th>

                    </tr>

                    <%

                           Iterator it=al.iterator();

                           while(it.hasNext()){

                     %>

                    <tr>

                           <td><%= it.next() %></td>

                    </tr>

                    <% }/*end while*/ %>

             </table>

             <% for(int i=0;i<allPageCount;i++){ %>

                    <a href="?nowPageNum=<%=i%>"><%= i %></a> 

             <% } %>

      </body>

 </html>

总结:

       其他相关的WEB页面数据分页,也可以通过该方法完成.如果你愿意可以把该方法包装成类模板,或其他方面的实现工具.




相关文章

相关软件