JavaWeb实现分页哦

分页是现在项目必备的功能,那我们来看看哦

1.首先分析分页需要哪些数据???

1.总记录数totalpageCountsql语句 select count(*)from 表名
2.每页显示的数量 pageSize1.客户端进行传递2.由页面进行传递
3.总页数  totalPage总记录数/每页显示的数量注意:如果总记录数/每页的数量>0,则总页码+1
4.当前页currentPage客户端进行传递的
5.每页的数据 <List>通过sql语句求得:select * from 表名 limit begin pageSizebegin可以由公式求得:(currentPage-1)*pageSizes

2.知道了数据之后,我们来写业务逻辑

业务逻辑:
1.编写page类
2.点击当前页的时候,需要传递两个参数:currentPage和pageSizeservlet页面:1.接受参数2.调用service查询page1.创建空的page对象2.设置当前页面属性curentPage和每页显示的数量pageSize3.调用dao查询总记录数pageTotalCount4.调用dao查询list集合(int begin,int pageSize)5.计算总页码总记录数/每页显示的数量totalPage/pageSize(dao层)1.查询总记录数的方法 2.查询每页显示的数据的方法(int begin,int pageSize)3.将page存入request4.转发list.jsp显示

3.直接上代码

实体Page类

package com.cn.pojo;import java.util.List;public class Page<T> {// 当前页private int currentPage;// 每一页的数量private int pageSize;// 总记录数private int totalPageCount;// 总页数private int totalPage;// 每一页的数据------泛型private List<T> list;public Page() {super();}public Page(int currentPage, int pageSize, int totalPageCount, int totalPage, List<T> list) {super();this.currentPage = currentPage;this.pageSize = pageSize;this.totalPageCount = totalPageCount;this.totalPage = totalPage;this.list = list;}public int getCurrentPage() {return currentPage;}public void setCurrentPage(int currentPage) {this.currentPage = currentPage;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getTotalPageCount() {return totalPageCount;}public void setTotalPageCount(int totalPageCount) {this.totalPageCount = totalPageCount;}public int getTotalPage() {return totalPage;}public void setTotalPage(int totalPage) {this.totalPage = totalPage;}public List<T> getList() {return list;}public void setList(List<T> list) {this.list = list;}
}

servlet页面 BookPageServlet

package com.cn.servlet;import java.io.IOException;
import java.sql.SQLException;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.omg.CosNaming.NamingContextExtPackage.StringNameHelper;import com.cn.pojo.Book;
import com.cn.pojo.Page;
import com.cn.service.BookService;/*** Servlet implementation class BookPageServlet*/
public class BookPageServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public BookPageServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");//获得前端的值String currentPage = request.getParameter("currentPage");String pageSize = request.getParameter("pageSize");//防止空指针异常if(currentPage == null || "".equals(currentPage)) {currentPage="1";}if(pageSize == null || "".equals(pageSize)) {pageSize="5";}//存到request里try {Page<Book> page = BookService.findPage(currentPage, pageSize);request.setAttribute("page", page);//转发你想要的页面request.getRequestDispatcher("bookall.jsp").forward(request, response);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

BookService层

public static Page<Book> findPage(String _currentPage,String _pageSize) throws SQLException{//1.转化类型int currentPage = Integer.valueOf(_currentPage);int pageSize = Integer.valueOf(_pageSize);//2.new对象Page<Book> page = new Page<>();//3.赋值当前页 每一页的数量page.setCurrentPage(currentPage);page.setPageSize(pageSize);//4.计算总记录数int totalPageCount = JDBCDemo.totalPageCount();page.setTotalPageCount(totalPageCount);//5.计算总页数int totalPage = totalPageCount % pageSize == 0 ?(totalPageCount/pageSize):(totalPageCount/pageSize+1);page.setTotalPage(totalPage);//6.每一页的数据int begin = (currentPage-1)*pageSize+1;List<Book> list = JDBCDemo.page(begin, pageSize);page.setList(list);return page;}

我直接写的JDBC,没有实现接口哦~

//计算总记录数public static int totalPageCount() throws SQLException {String sql = "select count(*) from book_table";PreparedStatement statement = connection.prepareStatement(sql);ResultSet set = statement.executeQuery();int totalPageCount = 0;//判断是否有内容while(set.next()) {//获取当前的内容totalPageCount = set.getInt(1);}return totalPageCount;}//每一页的数据public static List<Book> page(int begin,int pageSize) throws SQLException {String sql = "select * from book_table limit ?,?";PreparedStatement statement = connection.prepareStatement(sql);statement.setInt(1, begin);statement.setInt(2, pageSize);List<Book> list = new ArrayList<Book>();ResultSet set = statement.executeQuery();Book book = null;while (set.next()) {book = new Book();book.setBookNum(set.getInt("book_num"));book.setBookName(set.getString("book_name"));book.setBookAuthor(set.getString("book_author"));book.setBookPrice(set.getInt("book_price"));book.setBookPress(set.getString("book_press"));book.setBookIntroduction(set.getString("book_introduction"));list.add(book);}return list;}

因为我转发到bookall.jsp页面,这里是我的bookall.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<%@taglib  uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<title>Insert title here</title>
</head>
<body><table border="3"><tr><th>图书编号</th><th>图书名字</th><th>图书作者</th><th>图书价格</th><th>图书出版社</th><th>图书介绍</th><th>操作</th></tr>//page存到request里了<c:forEach items="${page.list}" var = "book" ><tr><td>${book.bookNum}</td><td>${book.bookName}</td><td>${book.bookAuthor}</td><td>${book.bookPrice}</td><td>${book.bookPress}</td><td>${book.bookIntroduction}</td><td><a href = "InforServlet?bookNum=${book.bookNum}">修改</a><a href = "DeleteeServlet?bookNum=${book.bookNum}">删除</a></td></tr></c:forEach>  </table>//上一页  =  当前页-1<c:if test="${page.currentPage != 1}"><a style="color:red" href="BookPageServlet?currentPage=${page.currentPage-1}&pageSize=5">上一页</a></c:if>//循环输出每一页<c:forEach begin="1" end="${page.totalPage}" var="i"> <c:if test="${page.currentPage == i}">//如果点击当前页,就让页码变红色,其余的不变颜色//href要把地址带过来,否则你的数据不会更新<a style="color:red" href="BookPageServlet?currentPage=${i}&pageSize=5">${i}</a></c:if>//下一页 = 当前页+1 <c:if test="${page.currentPage != i}"><a href="BookPageServlet?currentPage=${i}&pageSize=5">${i}</a></c:if></c:forEach><c:if test="${page.currentPage != page.totalPage}"><a style="color:red" href="BookPageServlet?currentPage=${page.currentPage+1}&pageSize=5">下一页</a></c:if>总共${page.totalPageCount}条数据,总共${page.totalPage}页</body>
</html>
下图就是服务启动之后的页面展示...


以上就是javaWeb的分页哦,希望可以对大家有所帮助啦

JavaWeb实现分页哦相关推荐

  1. javaweb实现分页(二)

    前言:我们都知道,实现分页需要三个步骤.第一,确定页大小(每页显示的数据量).第二,计算显示的总页数.第三,写分页的sql语句.这三步已经在昨天的推文中详细说明,需要的可以点击这里快速浏览:javaw ...

  2. javaweb实现分页查询(一)

    大家好,欢迎来到雄雄的小课堂,昨天分享了个分页工具类,其实,也是为今天的分享做的铺垫,今天,给大家带来的是javaweb实现分页的全过程! 前言:为什么需要分页?假设某大学有人数一万人,学生信息管理系 ...

  3. JavaWeb实现分页的四种方法

    一.借助数组进行分页 原理:进行数据库查询操作时,获取到数据库中所有满足条件的记录,保存在应用的临时数组中,再通过List的subList方法,获取到满足条件的所有记录. 实现: 首先在dao层,创建 ...

  4. 关于JavaWeb的分页查询的实现

    思路: 1.首先先对显示信息的页面的对象进行封装,以便后面的调用 2. 控制层(controller)获取查询条件以及当前页码,将参数传递业务逻辑层(service) 3. 业务逻辑层(service ...

  5. javaWeb的分页

     伪列-rownum 由 Oracle 数据库表对象自动创建 表示每一行记录的行号 使用三层嵌套方式编写SQL 最内层:查询所有记录 中间层:通过 rownum 的限定查询数量的上限 最外层:通过 r ...

  6. javaWeb网页分页功能

    分页主要功能 采用分页技术让数据分批显示,当一页数据太多用户观看体验不佳,就可以使用分页技术 实现分页三部曲 一.确定每一页数据的条数 二.计算页数的数量 三.实现分页的sql语句 3.案例:使用分页 ...

  7. javaweb中实现分页,持续更新……

    大家好,欢迎来到雄雄的小课堂,昨天分享了个分页工具类一个简单的分页工具类,其实,也是为今天的分享做的铺垫,今天,给大家带来的是javaweb实现分页的全过程! 前言:为什么需要分页?假设某大学有人数一 ...

  8. 分页功能之PageBean

    一 JavaWeb实现分页的PageBean的属性介绍 int total:总记录数,这个需要从数据库中查询得到 int pageSize:每页显示的记录数,一般是设定好的具体数值 int pageN ...

  9. 分页功能的分析与实现

    文章目录 前言 一.什么是分页 二.分页的实现 1. 分页方式 2. 页面跳转的几种方式 3. 分页的实现--分页工具类 3.1 分页工具类--PageUtil.java 3.2 相关参数 三.Jav ...

最新文章

  1. PHP和js判断访问设备是否是微信浏览器实例
  2. [转载] zookeeper 分布式锁服务
  3. /GS 编译选项,_security_cookie,软件强制DEP
  4. java同步方法的特点_java多线程有哪些优点?同步实例代码展示
  5. 【BZOJ3932】[CQOI2015]任务查询系统 主席树
  6. java 虚拟机初始堆_了解java虚拟机—堆相关参数设置(3)
  7. 面向小姐姐的编程——JAVA面向对象之继承(一)
  8. ASEMI低压差线性稳压器AMS1117详解
  9. 2016PHP开发者大会
  10. 企业微信第三方应用添加好友
  11. win10网络适配器不见了_恢复消失的win10网络适配器的方法
  12. 基于FPGA的数字钟设计实验报告
  13. 快应用开发必备工具下载
  14. matplotlib高级教程之形状与路径——patches和path
  15. 正则表达式验证系统登录密码必须由字母数字和特殊符号组成
  16. 如何在大型系统中提供拼音检索服务
  17. 个人网站—首页HTML+CSS(超级简单的那种)
  18. 使用SSH链接Linux报错问题
  19. 关于日期身份证等常用的正则表达式记录
  20. TPFanControl.ini

热门文章

  1. Oracle优化SQL技法—降龙十八掌
  2. GitChat 超级会员 5 折,仅 2 天
  3. 最全的Web开发工具汇总!
  4. java auth fail_java连接zookeeper报 KeeperErrorCode = AuthFailed
  5. oracle序列创建及使用,Oracle 序列创建及使用
  6. SAS比较不同年龄段组间差异,卡方检验
  7. 数据结构算法———基数排序
  8. linux内核kdump,linux内核崩溃之kdump机制
  9. Aurigma图片上传程序是为您的网站的图片上传解决方案
  10. Excel 2010迷你图,单元格中的图表