Servlet分页技术

提到分页技术,有四个变量很关键

int rowCount   一共有多少记录                    【是从表中查询得来】

int pageSize  每页显示多少记录,               【用户选择 】

int pageCount 一共有多少页                        【根据上面两个计算得出的】

int pageNow  希望显示第几页                        【这个是用户指定的】

计算pageCount的方法

1 if(rowCount%pageSize==0)
2 {
3     pageCount = rowCount/pageSize;
4 }else{
5     pageCount = rowCount/pageSize+1;
6 }

SQLServer中数据库中的查询语句为  select top pageSize 字段名列表 from 表名 where id not in ( select top pageSize*(pageNow-1) id from 表名);

MySQL中select * from table limit (start-1)*limit,limit; 其中start是页码,limit是每页显示的条数

 1 PrintWriter pw = res.getWriter();
 2             pw.println("<body><center>");
 3             pw.println("<img src=imgs/521.jpg><br>");
 4             pw.println("welcom to my world,u="+u+",p="+p+",s="+s+",sessionId="+sessionId);
 5
 6             //------------------开始分页--------------------
 7             int rowCount = 0;
 8             int pageSize = 3;
 9             int pageNow = 1;
10             int pageCount = 0;
11             String sPageNow = req.getParameter("pageNow");
12             if(sPageNow!=null)
13             {
14                 pageNow = Integer.parseInt(sPageNow);
15             }
16             Connection connection = null;
17             PreparedStatement prestatement = null;
18             ResultSet rs = null;
19             try {
20                 //加载数据库驱动
21                 Class.forName("com.mysql.jdbc.Driver");
22                 //得到连接
23                 connection = DriverManager.getConnection("jdbc:mysql://localhost/dbjdbc","root","123456");
24                 //得到statement
25                 prestatement = connection.prepareStatement("select count(*) from db_users");
26                 rs = prestatement.executeQuery();
27                 if(rs.next())
28                 {
29                     rowCount = rs.getInt(1);
30                 }
31                 //计算pageCount
32                 if(rowCount%pageSize == 0)
33                 {
34                     pageCount = rowCount/pageSize;
35                 }else {
36                     pageCount = rowCount/pageSize +1;
37                 }
38
39                 prestatement = connection.prepareStatement("select * from db_users limit ?,?");
40                 //给?赋值
41                 prestatement.setInt(1, pageSize*(pageNow-1));
42                 prestatement.setInt(2, pageSize);
43                 rs = prestatement.executeQuery();
44
45                 //显示结果
46                 //显示表头
47
48                 pw.println("<table border=1>");
49                 pw.println("<tr><th>id</th><th>username</th><th>password</th></tr>");
50                 while(rs.next())
51                 {
52                     pw.println("<tr>");
53                     pw.println("<td>"+rs.getInt(1)+"</td>");
54                     pw.println("<td>"+rs.getString(2)+"</td>");
55                     pw.print("<td>"+rs.getString(3)+"</td>");
56                     pw.println("</tr>");
57                 }
58                 pw.println("</table>");
59                 //显示上一页
60                 if(pageNow!=1)
61                 {
62                     pw.println("<a href=welcome?pageNow="+(pageNow-1)+">"+"上一页</a>");
63                 }
64
65                 //显示超链接
66                 for(int i=pageNow;i<=pageCount;i++)
67                 {
68                     pw.println("<a href=welcome?pageNow="+i+">"+i+"</a>");
69                 }
70
71
72                 if(pageNow!=pageCount)
73                 {
74                     pw.println("<a href=welcome?pageNow="+(pageNow+1)+">"+"下一页</a>");
75                 }
76                 pw.println("</center></body>");
77             } catch (Exception e) {
78                 // TODO Auto-generated catch block
79                 e.printStackTrace();
80             }
时间: 2024-11-09 01:57:00

Servlet分页技术的相关文章

Servlet课程0426(八)Servlet分页技术

Welcome.java //登录界面 package com.tsinghua; import javax.servlet.http.*; import java.io.*; import java.sql.*; public class Welcome extends HttpServlet{ public void doGet(HttpServletRequest req, HttpServletResponse res) { //业务逻辑 Connection ct = null; Pr

Tomcat学习之Servlet分页技术

分页方法(1) 先讲讲分页的算法: 我们需要定义四个变量,它们有各自的用处 int pageSize: 每页显示多少条记录 int curPage: 希望显示第几页 int pageCount: 一共有多少页 int rowCount: 一共有多少条数据记录 说明: pageSize是设计者指定的; curPage是用户当前选择的 rowCount 是从表中查询得到的 pageCount是计算出来的,该计算式为 if (rowCount%pageSize == 0){ pageCount = r

Servlet+JavaBean+JSP真假分页技术详解

说明:分页技术分为真分页和假分页,具体采用哪种技术需要根据需求自我抉择.其实两者之间实现区别并不是太大.在分页之前我们需要搞明白对谁进行分页,一般情况是将数据封装到一个list集合中,明白这这一点问题基本上就已经解决了.(编写匆促如有错误请联系我) 下面首先介绍真分页. 方法一: 为了大家学习起来方便, 我将在项目中用到的内容都放在这个文档中,所以可能会比较萝莉啰嗦. 1.构建数表,字段如下 goods goodid int goodname varchar(45) price flaot 2,

jsp的分页技术

在jsp开发中,很多时候要用到分页技术,另外纯粹的分页实现就占了很多篇幅,所以使用javabean就十分有必要. 此文章依据实际代码,想大家展示jsp中利用javabean实现分页 目录结构如下: javabean的代码如下: package lytjb; import java.sql.ResultSet; import javax.servlet.http.HttpServletRequest; public class fenye { ResultSet CountTopicrs = nu

25、连接池(DBCP、C3P0)、动态代理与分页技术

连接池 思考: 程序中连接如何管理? 1. 连接资源宝贵:需要对连接管理 2. 连接: a) 操作数据库,创建连接 b) 操作结束, 关闭! 分析: 涉及频繁的连接的打开.关闭,影响程序的运行效率! 连接管理: 预先创建一组连接,有的时候每次取出一个: 用完后,放回: 学习连接池: a. 自定义一个连接池 b. 学习优秀的连接池组件 a) DBCP b) C3P0 动态代理 Java提供了一个Proxy类,调用它的newInstance方法可以生成某个对象的代理对象,使用该方法生成代理对象时,需

Java Web——分页技术

一.在数据库中存储的数据量特别大时(百万级以上),使用数据库分页技术,将已经分页好的数据存储在集合中返回给用户 1 /** 2 * 查询雇员(根据条件组合查询-数据库分页) 3 * @param emp 4 * @param pageSize 每页显示条数 5 * @param pageNum 当前页码 6 * @return 7 */ 8 public List<Emp> getEmp(Emp emp, int pageSize, int pageNum) { 9 try { 10 11 S

Mysql学习总结(31)——MySQL分页技术详解

1.什么是数据分页:数据分页就是将很多条记录像书本一样分页,每页显示多少行记录: 2.为什么要数据分页:当我们进行sql语句查询时,假如数据有成千上万行记录,如果在同一个页面去显示,那这个页面得有多大,数据就要很多,而我们所需的记录又很少,不使用分页,查看起来那么繁琐,而且一不小心容易看着眼花.使用数据分页,就行书本一样,有页数,一目了然.相当简洁. 3.核心sql语句:SELECT * FROM stud LIMIT m,n ----m表示要显示的页数,n表示显示的记录行数 4.核心思想: 总

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

jsp分页技术之: 如下图:百度的喵 看上图中卡哇伊的小苗的爪子下面的数字,就是分页啦!那我们如何做出这样一个效果呢? 下面我们来逐一分解: jsp分页技术一 :  (算法) 1 /* 2 int pageSize // 每一页显示多少条记录 3 int pageNow // 希望显示第几页 4 int pageCount //一共多少页 5 int rowCount //一共有多少条记录 6 7 说明: 8 pageSize : 是指定的pageNow是用户选择的rowCount是从表中查询得

jsp中利用MySQL实现分页技术

分页是很常用的一种技术,而mysql中对于分页的操作也很简单,今天就说说如何在jsp页面中利用标签来最简化的实现分页: 链接:MySQL分页技术详解http://blog.csdn.net/u011637069/article/details/49928513 step1:编写DAO中代码: [java] view plain copy public List<Employee> findAll2(int page, int perPageRows) throws Exception { Li