在实际应用中,如果从数据库中查询的记录特别的多,甚至超过了显示屏的显示范围,这个时候可将结果进行分页显示。

  1. 假设总记录数为intRowCount,每页显示的数量为inPageSize,总页数为intPageCount,那么总页数的计算公式如下:
  2. 如果:(intRowCount%intPageSize)>0,则intPageCount=intRowCount/intPageSize+1
  3. 如果:(intRowCount%intPageSize)=0,则intPageCount=intRowCount/intPageSize
  4. 翻页后显示intPage页的内容,将记录指针移动到(intPage-1)*intPageSize+1

建立pageBreak.jsp文件,代码如下

  1. <%@ page import="java.sql.*" %>
  2. <%@ page contentType="text/html" pageEncoding="UTF-8" %>
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html;charest=UTF-8">
  6. <title>JSP分页浏览</title>
  7. </head>
  8. <body>
  9. <div align="center">
  10. 分页显示记录内容
  11. <hr>
  12. <table border="1" bgcolor="cccfff" align="center">
  13. <tr>
  14. <th>学号</th>
  15. <th>班级</th>
  16. <th>姓名</th>
  17. <th>性别</th>
  18. <th>年龄</th>
  19. </tr>
  20. <%
  21. String DBDRIVER="org.gjt.mm.mysql.Driver";                //我用的mysql数据库
  22. String DBURL="jdbc:mysql://localhost:3306/example";
  23. String DBUSER="root";
  24. String DBPASS="mysqladmin";
  25. String sql="select * from paging";
  26. int intPageSize;  //一页显示的记录数
  27. int intRowCount;  //记录总数
  28. int intPageCount; //总页数
  29. int intPage;    //待显示页码
  30. int i;
  31. String strPage;
  32. intPageSize=5;   //设置一页显示的记录数
  33. //取得待显示页码
  34. strPage=request.getParameter("page");
  35. if(strPage==null){     //没有page这个属性
  36. intPage=1;
  37. }else{
  38. intPage=java.lang.Integer.parseInt(strPage);
  39. if(intPage<1){
  40. intPage=1;
  41. }
  42. }
  43. Connection conn=null;
  44. Statement stmt=null;
  45. ResultSet rs=null;
  46. Class.forName(DBDRIVER);
  47. conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
  48. stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
  49. rs=stmt.executeQuery(sql);
  50. rs.last();     //光标指向查询结果集的最后一条记录
  51. intRowCount=rs.getRow();                //获取记录总数
  52. intPageCount=(intRowCount+intPageSize-1)/intPageSize;               //计算总页数
  53. if(intPage>intPageCount){      //调整待显示的页码
  54. intPage=intPageCount;
  55. }
  56. if(intPageCount>0){
  57. rs.absolute((intPage-1)*intPageSize+1);    //将记录指针定位在待显示页的第一天记录上
  58. }
  59. //显示数据
  60. i=0;
  61. while(i<intPageSize&&!rs.isAfterLast()){
  62. %>
  63. <tr>
  64. <td><%=rs.getString("stuNumber") %></td>        //从数据库读取记录
  65. <td><%=rs.getString("stuBanji") %></td>
  66. <td><%=rs.getString("stuName") %></td>
  67. <td><%=rs.getString("stuSex") %></td>
  68. <td><%=rs.getString("stuAge") %></td>
  69. </tr>
  70. <%
  71. rs.next();
  72. i++;
  73. }
  74. %>
  75. </table>
  76. <hr>
  77. <div align="center">
  78. 第<%=intPage %>页 共<%=intPageCount %>页
  79. <%
  80. if(intPage>1){
  81. %>
  82. <a href="pageBreak.jsp?page=<%=intPage-1%>">上一页</a>
  83. <%
  84. }       //下一页
  85. if(intPage<intPageCount){
  86. %>
  87. <a href="pageBreak.jsp?page=<%=intPage+1%>">下一页</a>
  88. <%
  89. }
  90. rs.close();
  91. stmt.close();
  92. conn.close();
  93. %>
  94. </div>
  95. </div>
  96. </body>
  97. </html>

显示结果如下:

1、

2、

3、

数据库代码为:

    1. create database example;
    2. create table paging(
    3. stuNumber  varchar(15),
    4. stuBanji  varchar(10),
    5. stuName  varchar(50),
    6. stuSex  varchar(4),
    7. stuAge  int
    8. );
    9. INSERT INTO paging(stuNumber,stuBanji,stuName,stuSex,stuAge) VALUES ('2012040101207','24010105','鲍礼彬','男',23);

JSP的分页技术的更多相关文章

  1. jsp-------------之分页技术(一)

    jsp分页技术之: 如下图:百度的喵 看上图中卡哇伊的小苗的爪子下面的数字,就是分页啦!那我们如何做出这样一个效果呢? 下面我们来逐一分解: jsp分页技术一 :  (算法) /* int pageS ...

  2. Javaweb 第15天 web练习和分页技术

    第15天 web练习和分页技术 复习day14内容: 学习新技术的思路? 分析功能的思路? 使用queryRunner操作数据库的步骤? ResultSetHandler接口常用实现类(三个重点)? ...

  3. 改进Spring中的分页技术

    Spring中有一个PagedListHolder,能够实现分页. 但此类有几个缺点: 1. 使用此类的代码比較繁琐 2. 此类存放的数据源是全部的记录集,即对于记录数为1000条的数据,即使我们仅仅 ...

  4. JAVAEE之-----MySQL分页技术(带搜索)

    需求: 为什么须要採用分页技术呢?在数据库中我们查询数据的时候,须要将数据返回到显示页面.数据库中含有大量数据,所有显示在一个页面过于太多,所以我们须要採用分页技术.每一页显示不同数据. 主要解决这个 ...

  5. Mysql学习总结(32)——MySQL分页技术详解

    1.什么是数据分页:数据分页就是将很多条记录像书本一样分页,每页显示多少行记录: 2.为什么要数据分页:当我们进行sql语句查询时,假如数据有成千上万行记录,如果在同一个页面去显示,那这个页面得有多大 ...

  6. tp中使用分页技术

    1 public function showList() { $m_ld = D ( 'guangxi_ld' ); $page = I ( 'get.p', 1 ); // 在配置中获取分页值 $p ...

  7. Servlet分页技术

    这是看韩顺平老师的servlet视频,自己动手写的,楼主看韩顺平老师的servlet是2006制作的,用的是sql server数据库,自己又用的是oracle数据库,所以怕有的同学遇到同样的问题,不 ...

  8. 分页技术之PageDataSource类

    之前给大家介绍了分页技术之Gridview控件,今天给大家介绍另外一种分页技术,采用PageDataSource类 + Repeater控件来实现. 前台只需要拖出一个Repeater控件来绑定要显示 ...

  9. 分页技术之GridView控件

    GridView控件实现分页技术 第一步:设置GridView控件的属性,跟分页相关的属性设置如下: AllowPaging="true":允许分页, PageSize=" ...

随机推荐

  1. 学习C++,应该循序渐进的看哪些书?

    在某博客上看到的一个C++书籍阅读清单,可以参考下: 阶段 1<Essential C++>这是一本内容不多但很实用的C++入门书籍,强调快速上手与理解C++编程.本书主要围绕一系列逐渐复 ...

  2. css学习2

    1.垂直居中 -父元素高度确定的单行文本: 设置父元素的 height 和 line-height  高度一致来实现的.(height: 该元素的高度:line-height: 行高(行间距),指在文 ...

  3. React更新元素 基础

    React元素创建后无法修改其内容和属性.唯一的办法是创建新的元素,传入ReactDOM.render()方法 三种实现形式: 1.整体替换 function tick () { const ele= ...

  4. 记一个jquery 无缝轮播的制作方法

    接触前端也很久了,今天才发现,要做好一个轮播,其实有很多东西需要考虑进去,否则做出来的轮播效果并不好,下面我就来做一个轮播,是依赖jquery来写的 1.要做轮播,首先需要的是HTML的内容,css的 ...

  5. java学习-- equals和hashCode的关系

    hashcode的目的就是在hashset或者hashmap等中比较两个对象相等时,减少equals的使用次数来提高效率 以下为摘录 java中hashcode和equals的区别和联系 HashSe ...

  6. install oracle 12c on redhat

    ---恢复内容开始--- 1.  确定VM的硬盘空间是否够  df- h, 硬盘空间free disk 15G 比较稳妥 2. 确定好网络,需要remote connect   ifconfig 3. ...

  7. jquery 找同胞系列siblings() ,next() ,nextAll(), nextUntil(), prev(), prevAll(), prevUntil()

    注:expr是指可选的参数,包含用于匹配元素的选择器表达式. .siblings(expr) ---查找所有兄弟(包括哥哥和弟弟) .next(expr) ---查找紧挨着的弟弟 .nextAll(e ...

  8. jeesite 下载ckfinder上传的文件

    在需要下载的位置,将以下代码复制到页面最下方,就可以实现文件下载了 <script> $(document).ready(function() { var fileName = $(&qu ...

  9. 最小的K个数(python)

    题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,.   # -*- coding:utf-8 -*- class So ...

  10. Curator的监听

    如果要使用类似Wather的监听功能Curator必须依赖一个jar包,Maven依赖, <dependency> <groupId>org.apache.curator< ...