JSP实现分页功能

news/2023/10/3 16:01:32

分页须知知识点:

(1)JDBC2.0的可滚动结果集。

(2)HTTP GET请求。


一、可滚动结果集


Connection con  = DriverManager.getConnection();

PreparedStatement stmt = con.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);

ResultSet rs = stmt.executeQuery();

常用方法:

(1)rs.absolute(n);        可以将指针跳到第n行。

(2)rs.relative(n);           可以将指针相对向下或向上n行。

(3)rs.first();

(4)rs.last();

(5)int curRow = rs.getRow();    指针指向的当前行


二、功能实现分解


1.计算结果的个数


rs.last();

int size = rs.getRow();

即可得到结果的个数。


2.得到需要分几页


如果一页能够放5条记录,则

int pageCount = (size%5==0)?(size/5):(size/5+1);

即可获得需要分几页。


3.控制一页中规定显示记录个数


如果一页能显示5条记录,可以通过使用count进行计数。

int count = 0;

do{

    if(count>=5) break;

    .....

    count++;

}while(rs.next());

通过break语句,能够使其显示到超过规定条目就跳出。


4.如何知道当前是第几页


通过HTTP get的特点,在地址栏中标明当前地址,如http://.......?curPage=1    表示现在是第一页。

String tmp = request.getParameter("curPage");
if(tmp==null){
       tmp="1";
}
curPage = Integer.parseInt(tmp);

可以获得当前页。

注意:

rs.absolute(1);表示指向第一条记录;

不存在rs.absolute(0);

rs.absolute((curPage-1)*PAGESIZE+1);      把结果集指针调整到当前页应该显示的记录的开始.

比如如果一页显示5条记录,当前页是第二页,则需要把指针调整到6,当前页是第三页,则需要把指针调整为11.


5.点击首页、上一页、下一页、尾页的行为


<a href="multipage.jsp?curPage=<%curPage+1%>" >下一页</a>

<a href="multipage.jsp?curPage=<%curPage-1%>" >上一页</a>

<a href="multipage.jsp?curPage=<%pageCount%>" >尾页</a>

<a href="multipage.jsp?curPage=1" >首页</a>


6.为了保存当前页位置,则需要把当前页位置设为全局变量。


综合代码:
[html] view plaincopy
  1. <%@ page contentType="text/html" pageEncoding="GB2312" language="java"%>  
  2. <%@ page import="java.sql.*"%>  
  3. <html>  
  4.     <head>  
  5.         <title>hello</title>  
  6.     </head>  
  7.     <body>  
  8.     <table border="1" spacing="2">  
  9. <%!  
  10.     public static final String DRIVER = "com.mysql.jdbc.Driver";  
  11.     public static final String USER = "root";  
  12.     public static final String PASS = "12345";  
  13.     public static final String URL = "jdbc:mysql://localhost:3306/MLDN";  
  14.     public static final int PAGESIZE = 5;  
  15.     int pageCount;  
  16.     int curPage = 1;  
  17. %>  
  18. <%  
  19.     //一页放5个  
  20.     String user = null;  
  21.     String pass = null;  
  22.     try{  
  23.         Class.forName(DRIVER);  
  24.         Connection con = DriverManager.getConnection(URL,USER,PASS);  
  25.         String sql = "SELECT empno,ename,job,hiredate,sal,comm FROM emp";  
  26.         PreparedStatement stat = con.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);  
  27.         ResultSet rs = stat.executeQuery();  
  28.         rs.last();  
  29.         int size = rs.getRow();  
  30.         pageCount = (size%PAGESIZE==0)?(size/PAGESIZE):(size/PAGESIZE+1);  
  31.         String tmp = request.getParameter("curPage");  
  32.         if(tmp==null){  
  33.             tmp="1";  
  34.         }  
  35.         curPage = Integer.parseInt(tmp);  
  36.         if(curPage>=pageCount) curPage = pageCount;  
  37.         boolean flag = rs.absolute((curPage-1)*PAGESIZE+1);  
  38.         out.println(curPage);  
  39.         int count = 0;  
  40.           
  41.         do{  
  42.             if(count>=PAGESIZE)break;  
  43.             int empno = rs.getInt(1);  
  44.             String ename = rs.getString(2);  
  45.             String job = rs.getString(3);  
  46.             Date hiredate = rs.getDate(4);  
  47.             float sal = rs.getFloat(5);  
  48.             int comm = rs.getInt(6);  
  49.             count++;  
  50.             %>  
  51.         <tr>  
  52.             <td><%=empno%></td>  
  53.             <td><%=ename%></td>  
  54.             <td><%=job%></td>  
  55.             <td><%=hiredate%></td>  
  56.             <td><%=sal%></td>  
  57.             <td><%=comm%></td>  
  58.         </tr>  
  59.             <%  
  60.         }while(rs.next());  
  61.         con.close();  
  62.     }  
  63.     catch(Exception e){  
  64.           
  65.     }  
  66. %>  
  67. </table>  
  68. <a href = "multipage.jsp?curPage=1" >首页</a>  
  69. <a href = "multipage.jsp?curPage=<%=curPage-1%>" >上一页</a>  
  70. <a href = "multipage.jsp?curPage=<%=curPage+1%>" >下一页</a>  
  71. <a href = "multipage.jsp?curPage=<%=pageCount%>" >尾页</a>  
  72. <%=curPage%>页/共<%=pageCount%>页  
  73.   
  74. </body>  
  75. </html> 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.yaotu.net/news/605605.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ExtJs自学教程(1):一切从API开始

题 记该系列文章不侧重全方位的去介绍ExtJs的使用&#xff0c;只是侧重于解决ExtJs问题的思考方法。写的人不用长篇大论&#xff0c;学的人则能够自立更生。l 学习的人只要有一些CSS的javascript的基础知识并且对于英文不至于非常蹩脚&#xff08;以辅助词霸能看懂ExtJs的API…

ExtJs自学教程(2):从DOM看EXTJS

《二》 从DOM看EXTJS看标题可能有人会问&#xff0c;为啥好好的例子不看&#xff0c;得从DOM看起呢&#xff1f;答案是目标只为了一个&#xff1a;自运行结果把EXTJS看得更清楚点 首先&#xff0c;要看得靠点工具&#xff0c;带点放大镜什么吧&#xff1f;对。我们需要的工具…

java过滤器和监听器详解

过滤器 1、Filter工作原理&#xff08;执行流程&#xff09; 当客户端发出Web资源的请求时&#xff0c;Web服务器根据应用程序配置文件设置的过滤规则进行检查&#xff0c;若客户请求满足过滤规则&#xff0c;则对客户请求&#xff0f;响应进行拦截&#xff0c;对请求头…

Java Web中的EL(表达式语言)详解

Java Web中的EL&#xff08;表达式语言&#xff09;详解 表达式语言(Expression Language)简称EL&#xff0c;它是JSP2.0中引入的一个新内容。通过EL可以简化在JSP开发中对对象的引用&#xff0c;从而规范页面代码&#xff0c;增加程序的可读性及可维护性。EL为不熟悉Java语言页…

PowerDesigner入门教程

PowerDesigner安装方法:http://dev.firnow.com/course/3_program/java/javajs/20090908/174375.html安装完这2个软件了,接着就开始使用吧,还是和以前一样,先提出需求,再做实例,因为我们之所以使用它们,肯定是因为它们能巧妙的解决某种问题,不然我们干嘛花那么多时间和硬盘空间安…

PowerDesigner(一)-PowerDesigner概述(系统分析与建模)

PowerDesigner概述 PowerDesigner是Sybase公司推出的一个集成了企业架构&#xff0c;UML(统一建模语言)和数据库的CASE(计算机辅助软件工程)工具。它不仅可以用于系统设计和开发的不同阶段(即业务分析&#xff0c;概念模型设计&#xff0c;物理模型设计以及面向对象开发阶段)&a…

PowerDesigner(二)-项目和框架矩阵

项目和框架矩阵 项目是PowerDesigner 15的新概念&#xff0c;通过项目系统分析/设计人员可以对模型以及各类文档进行分组。项目也可以包含框架矩阵&#xff0c;以表格的形式体现各个模型之间的关系。 项目和框架矩阵解决了如何对模型进行统一管理的问题。 1.创建框架矩阵(FEAF-…

PowerDesigner(三)-企业架构模型

企业架构模型(Enterprise Architecture Model,EAM)是PowerDesigner 15新增的功能&#xff0c;它能够以图形的方式展现企业架构&#xff0c;从而取代文字描述&#xff1b;以偏向非技术性的表达方式&#xff0c;从不同层面表达不同的图示结果。 企业架构模型从业务层&#xff0c;…

PowerDesigner(四)-业务处理模型

业务处理模型 业务处理模型(Business Process Model,BPM)以业务需求作为出发点&#xff0c;用图形的方式描述系统的任务和业务流程&#xff0c;注重的是处理过程中数据流程。业务处理模型是从业务人员的角度对业务逻辑和规则进行详细描述的概念模型&#xff0c;并使用流程 图表…

PowerDesigner(五)-概念数据模型(CDM生成LDM,PDM和OOM)

概念数据模型 概念数据模型(Conceptual Data Model,CDM)&#xff1a;表达的是数据整体逻辑结构&#xff0c;该结构独立于任何软件和数据存储结构&#xff0c;即它只是系统分析人员&#xff0c;应用程序设计人员&#xff0c;维护人员和用户之间相互理解的共同语言&#xff0c;并…

PowerDesigner(六)-物理数据模型(PDM逆向工程)

物理数据模型PDM 物理数据模型(Physical Data Model,PDM):在数据库的逻辑结构设计好之后&#xff0c;就需要完成其物理设计&#xff0c;PDM就是为实现这一目的而设计的。 物理数据模型是以常用的DBMS(数据库管理系统)理论为基础&#xff0c;将CDM/LDM中所建立的现实世界模型生…

PowerDesigner(八)-面向对象模型(用例图,序列图,类图,生成Java源代码及Java源代码生成类图)

面向对象模型 面向对象模型是利用UML(统一建模语言)的图形来描述系统结构的模型&#xff0c;它从不同角度实现系统的工作状态。这些图形有助于用户&#xff0c;管理人员&#xff0c;系统分析人员&#xff0c;开发人员&#xff0c;测试人员和其他人员之间进行信息交流。这里主要…

PowerDesigner(九)-模型文档编辑器(生成项目文档)

模型文档编辑器 PowerDesigner的模型文档(Model Report)是基于模型的&#xff0c;面向项目的概览文档&#xff0c;提供了灵活&#xff0c;丰富的模型文档编辑界面&#xff0c;实现了设计&#xff0c;修改和输出模型文档的全过程。 模型文档的功能如下&#xff1a; 为各个模型…

JNDI学习总结(一)——JNDI数据源的配置

一、数据源的由来 在Java开发中&#xff0c;使用JDBC操作数据库的四个步骤如下&#xff1a; ①加载数据库驱动程序(Class.forName("数据库驱动类");)②连接数据库(Connection con DriverManager.getConnection();)③操作数据库(PreparedStatement stat con.prepa…

JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源

一、C3P0下载 C3P0下载地址&#xff1a;http://sourceforge.net/projects/c3p0/files/?sourcenavbar 下载完成之后得到一个压缩包。 二、使用C3P0配置JNDI数据源 Tomcat6.x中配置JNDI数据源时默认使用的是Tomcat6.x自带的DBCP连接池&#xff0c;Tomcat6.x使用DBCP连接池配置JN…

java 消息机制 ActiveMQ入门实例

1.下载ActiveMQ 去官方网站下载&#xff1a; http://activemq.apache.org/我下载的时候是 ActiveMQ 5.8.0 Release版 2.运行ActiveMQ 解压缩apache-activemq-5.8.0-bin.zip&#xff0c;然后双击apache-activemq-5.5.1\bin\activemq.bat运行ActiveMQ程序。 启动ActiveMQ以后&…

JavaSE基础12笔记常见对象

12.01_常见对象(Scanner概述及其方法介绍) A.Scanner概述 B.Scanner构造方法原理 ​ Scanner(Inputstream source) ​ System下面有个字段 ​ public static final Inputstream in;标准输入流,对应键盘录入 C.一般方法 ​ hasNextxxx() 判断是否还有下一个输入项 ​ ne…

spring integeration主要概念

1目标和原则 SpringIntegration主要有如下两个目标&#xff1a; l提供一个简单的模型来实现复杂的企业集成解决方案 l为基于Spring的应用添加异步的、消息驱动的行为&#xff0c;让Spring用户可以直观的、增量的采用 SpringIntegration基于两个原则&#xff1a; l组件应该松耦合…

Spring Integration入门

为什么使用Spring Integration Spring Integration是Spring框架创建的又一个API&#xff0c;面向企业应用集成&#xff08;EAI&#xff09;。说到集成&#xff0c;并不缺“解决办法”&#xff1a;硬编码的Java客户端、其它ESB产品&#xff0c;还有消息队列等更加传统的应用集成…

dispatcherservlet详解

3.1、DispatcherServlet作用 DispatcherServlet是前端控制器设计模式的实现&#xff0c;提供Spring Web MVC的集中访问点&#xff0c;而且负责职责的分派&#xff0c;而且与Spring IoC容器无缝集成&#xff0c;从而可以获得Spring的所有好处。 具体请参考第二章的图2-1。 Dispa…
最新文章