基 本的分页思路
1、定义四个变量
int page_persize=2;//每页显示记录数 int page_total=0;//总的页数 int page_now=1;//当前页码 int rs_total=0;//总的记录数
2、读取所有记录给rs
String sql="select * from userlist "; ResultSet rs = connDbBean.executeQuery(sql);
3、计算总记录数rs_total
rs.last();//指针到最后一条记录 rs_total=rs.getRow();//读出当前行号即总的记录数
4、计算总页数
if (rs_total % page_persize==0) page_total=rs_total/page_persize; else page_total=rs_total/page_persize+1;
5、得到当前的页码
try{ if (!(request.getParameter("page_now")==null || request.getParameter("page_now").equals(""))) page_now=Math.min(Math.abs(Integer.parseInt(request.getParameter("page_now"))),page_total); }catch(java.lang.NumberFormatException e){ out.print("指定页码格式不正确"+e); } if (page_now==0) page_now=1;
6、根据页码使指针指向相应页码的第一条记录
rs.absolute((page_now-1)*page_persize+1);
7、判断是否有记录并使用for循环显示当前页的记录
rs.previous(); for(int i=1;i<=page_persize;i++) { if (!rs.next()) break;//如果记录数不够则中断循环 }
8、显示页码导航(方式灵活多样,不再赘述)
<p align=center> <% //显示页码导航,其中的问号表示由当前页面处理。 out.print("总共"+rs_total+"条记录 "); if (page_total>1){ out.print("当前第"+page_now+"页 "); out.print("共"+page_total+"页 "); if(page_now!=1) { out.print("<a href=?page_now=1>首页</a> "); out.print("<a href=?page_now="+(page_now-1)+">上一页</a> "); } if(page_now!=page_total){ out.print("<a href=?page_now="+(page_now+1)+">下一页</a> "); out.print("<a href=?page_now="+page_total+">尾页</a> "); } %> <form action="?" method="post"><!--问号表示由当前页面处理 --> <table width="100%" border="0" align="left" cellpadding="0" cellspacing="0"> <tr> <td><div align="center">跳转到: <input name="page_now" type="text" size="3" /> <input name="submit" type="submit" value="提交" /> </div></td> </tr> </table> </form> <% } %> </p>
例1:
<%@ page contentType="text/html; charset=utf-8" 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=utf-8" /> <title>read</title> </head> <body style="text-align:center"> <a href="add.jsp">add</a> <form method='post' action="search.jsp"> <input type="text" name="str"> <input type="submit" value="search"> </form> <table border="1" cellspacing="0" cellpadding="3"> <tr> <td>id</td> <td>title</td> <td>content</td> <td>删除</td> <td>编辑</td> </tr> <% Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=dataBase;user=sa;password=sa;"; Connection conn = DriverManager.getConnection(connectionUrl); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); //定义四个变量 int page_persize=2;//每页显示记录数 int page_total=0;//总的页数 int page_now=1;//当前页码 int rs_total=0;//总的记录数 //产生结果集 String sql="select * from dataTableName"; ResultSet rs=stmt.executeQuery(sql); //计算总的记录数 rs.last();//指针到最后一条记录 rs_total=rs.getRow();//读出当前行号即总的记录数 //计算总的页数 if (rs_total % page_persize==0) page_total=rs_total/page_persize; else page_total=rs_total/page_persize+1; //计算当前页码 try{ if (!(request.getParameter("page_now")==null || request.getParameter("page_now").equals(""))) page_now=Math.min(Math.abs(Integer.parseInt(request.getParameter("page_now"))),page_total); }catch(java.lang.NumberFormatException e){ out.print("指定页码格式不正确"+e); } if (page_now==0) page_now=1; //指针跳转到要访问的页码的第一条记录 rs.absolute((page_now-1)*page_persize+1); //循环显示当前页码的内容 for(int i=1;i<=page_persize;i++) { %> <tr> <td><%=rs.getString(1)%></td> <td><%=rs.getString(2)%></td> <td><%=rs.getString(3)%></td> <td><a href="del.jsp?id=<%=rs.getString("id")%>">删除</a></td> <td><a href="edit.jsp?id=<%=rs.getString("id")%>">编辑</a></td> </tr> <% if (!rs.next()) break;//如果记录数不够则中断循环 } //关闭 rs.close(); stmt.close(); conn.close(); %> </table><br> <% //显示页码导航,其中的问号表示由当前页面处理。 out.print("总共"+rs_total+"条记录 "); if (page_total>1){ out.print("当前第"+page_now+"页 "); out.print("共"+page_total+"页 "); if(page_now!=1) { out.print("<a href=?page_now=1>首页</a> "); out.print("<a href=?page_now="+(page_now-1)+">上一页</a> "); } if(page_now!=page_total){ out.print("<a href=?page_now="+(page_now+1)+">下一页</a> "); out.print("<a href=?page_now="+page_total+">尾页</a> "); } %> <form action="?" method="post"> <!--问号表示由当前页面处理 --> <table width="100%" border="0" align="left" cellpadding="0" cellspacing="0"> <tr> <td><div align="center">跳转到: <input name="page_now" type="text" size="3" /> <input name="submit" type="submit" value="提交" /> </div></td> </tr> </table> </form> <% } %> </body> </html>
例2:使用了javabean
<% int page_persize=2;//每页显示记录数 int page_total=0;//总的页数 int page_now=1;//当前页码 int rs_total=0;//总的记录数 String sql="select * from userlist"; ResultSet rs=connDbBean.executeQuery(sql); rs.last();//指针到最后一条记录 rs_total=rs.getRow();//读出当前行号即总的记录数 if (rs_total % page_persize==0) page_total=rs_total/page_persize; else page_total=rs_total/page_persize+1; try{ if (!(request.getParameter("page_now")==null || request.getParameter("page_now").equals(""))) page_now=Math.min(Math.abs(Integer.parseInt(request.getParameter("page_now"))),page_total); }catch(java.lang.NumberFormatException e){ out.print("指定页码格式不正确"+e); } if (page_now==0) page_now=1; rs.absolute((page_now-1)*page_persize+1); for(int i=1;i<=page_persize;i++) { //循环体 if (!rs.next()) break;//如果记录数不够则中断循环 } rs.close(); connDbBean.closeStmt(); connDbBean.closeConn(); //显示页码导航,其中的问号表示由当前页面处理。 out.print("总共"+rs_total+"条记录 "); if (page_total>1){ out.print("当前第"+page_now+"页 "); out.print("共"+page_total+"页 "); if(page_now!=1) { out.print("<a href=?page_now=1>首页</a> "); out.print("<a href=?page_now="+(page_now-1)+">上一页</a> "); } if(page_now!=page_total){ out.print("<a href=?page_now="+(page_now+1)+">下一页</a> "); out.print("<a href=?page_now="+page_total+">尾页</a> "); } %> <form action="?" method="post"><!--问号表示由当前页面处理 --> <table width="100%" border="0" align="left" cellpadding="0" cellspacing="0"> <tr> <td><div align="center">跳转到: <input name="page_now" type="text" size="3" /> <input name="submit" type="submit" value="提交" /> </div></td> </tr> </table> </form> <% } %>
相关推荐
我见过的分页控件中最简 你可以到http://blog.csdn.net/laolaowhn/archive/2007/12/29/2002769.aspx 查看说明
12种分页代码 写的很详细
功能:此控件支持以下全部的分页功能与例子 1.长文章分页(用分页符)(C#) 2.长文章分页(按字节长度分页)...12.RadioButtonList(C#)控件 13.DropDownList(C#)控件 14.ListBox(C#)控件 15.读取分页图片(C#) 16.读取Xml(C#)
12. List userList = query.list(); 13. for (Iterator iter=userList.iterator(); iter.hasNext();) { 14. User user = (User)iter.next(); 15. System.out.println(user.getId()); 16. System.out.println...
12 分页 分页 打印一页数据
【MyBatis学习笔记四】——MyBatis分页.zip 博客地址:https://blog.csdn.net/weixin_43817709/article/details/117399631
JSP+servlet+javabean学习 里面有PDF文件对该章节的详细讲解,培训老师才讲的到的,非常详细.........JavaWeb10-分页应用.rar JavaWeb11-图片验证码.rar JavaWeb12-文件上传.rar JavaWeb13-过滤器与监听器.rar
│ 12.加载虚拟机.mp4 │ 13.数据库建表.mp4 │ 14.配置中心.mp4 │ 15.工程结构解析.mp4 │ 17.核心代码解析-创建指标.mp4 │ 18.添加设备需求分析与结构设计.mp4 │ 21.添加设备-3.mp4 │ 23.根据设备Id...
通用分页控件c#源码(downmoon收集) 采用工厂模式,提供标准化接口!支持 DataGrid 及 Repeater分页使用方法:新建两个解决方案 一为Pager,一为webtest 下载后请将两个解决方案合并一下,即新的解决方案包括两个...
12.下拉菜单 13.折叠列表 14.列表 15.选项卡 16.分页 17.价格表 18.顶部导航栏 19.侧边栏 20.滑动导航 21.麦哲伦导航 22.表单 23.输入框 24.开关 25.滑块 26.提示框 27.模态框 28.Joyride 29.均衡器 30.网格系统 31....
ADO.NET是.NET框架中的重要组件,主要用于完成C#应用程序访问数据库。 本文档包括以下知识: 1.组成部分 2.最简单的Ado&Connection; 3.关于using ...12.分页查询 13.JOIN 14.LEFT JOIN 15.RIGHT JOIN 16.视图
this.PageBar1.SizeOfPage = 12; SqlConnection con = PublicClass.GetConnection(\"server=.;uid=he;pwd=123;database=test\"); SqlCommand cmd = PublicClass.GetCommand(\"page\", con); cmd.CommandType...
0817更新: ...2.改进搜索插件 3.增加评论功能 4.增加中文转拼音功能 5.修正前一个版本放在子目录需要修改大量参数的问题 6.生成GoogleSitemaps ...12.分页列表样式可以const.asp里修改 13.其他小改动等
11.给放大的分页.html 12.关闭此页面时会提醒你加入书签.html 13.划过链接鼠标变手型.html 14.可供选择大小.html 15.可记录cookie的优酷小提示.html 16.可收缩和弹起的网页消息对话框.html 17.可左右平滑滚动的产品...
body {font-size: 12px;} /* Pages Main Tyle */ .pages { color: #000000; cursor: default; font-size: 10px; font-family: Tahoma, Verdana; padding: 3px 0px 3px 0px; } .pages .count, .pages .number, ...
PHP 分页排序遍历目录 ... 原先在网络上找遍历分页的时候 ...07→20101021125546.txt → 2010 21 10 12:55:46 08→20101017200134.txt → 2010 17 10 20:01:34 共2页 每页8条共有15条信息 当前第1页 首页 上页 下页 尾页
飞思卡尔MC9S12系列单片机地址影射以及分页问题.doc
Windows NT分页文件的基本原则 Windows NT最初通过在物理RAM的数量上加上12MB以设定开始的分页文件大小。这12MB考虑到在系统故障时分页文件内容可被倾倒到一个日志中以防万一。如果看见了“停止”框和接着出现蓝屏...
12、静态变量和实例变量的区别? ............................................................................. 12 13、是否可以从一个 static 方法内部发出对非 static 方法的调用? ...........................
第1章 Windows应用程序开发入门..........................................................................................16 1.1 第一个实例程序...............................................................