背景

Servlet中怎么实现大数据分页获取呢?

方案

引入pagehelper依赖

Servlet

HTML

PageInfo

package com.github.pagehelper;import java.util.Collection;
import java.util.List;public class PageInfo<T> extends PageSerializable<T> {private int pageNum;private int pageSize;private int size;private int startRow;private int endRow;private int pages;private int prePage;private int nextPage;private boolean isFirstPage;private boolean isLastPage;private boolean hasPreviousPage;private boolean hasNextPage;private int navigatePages;private int[] navigatepageNums;private int navigateFirstPage;private int navigateLastPage;public PageInfo() {this.isFirstPage = false;this.isLastPage = false;this.hasPreviousPage = false;this.hasNextPage = false;}public PageInfo(List<T> list) {this(list, 8);}public PageInfo(List<T> list, int navigatePages) {super(list);this.isFirstPage = false;this.isLastPage = false;this.hasPreviousPage = false;this.hasNextPage = false;if (list instanceof Page) {Page page = (Page)list;this.pageNum = page.getPageNum();this.pageSize = page.getPageSize();this.pages = page.getPages();this.size = page.size();if (this.size == 0) {this.startRow = 0;this.endRow = 0;} else {this.startRow = page.getStartRow() + 1;this.endRow = this.startRow - 1 + this.size;}} else if (list instanceof Collection) {this.pageNum = 1;this.pageSize = list.size();this.pages = this.pageSize > 0 ? 1 : 0;this.size = list.size();this.startRow = 0;this.endRow = list.size() > 0 ? list.size() - 1 : 0;}if (list instanceof Collection) {this.navigatePages = navigatePages;this.calcNavigatepageNums();this.calcPage();this.judgePageBoudary();}}public static <T> PageInfo<T> of(List<T> list) {return new PageInfo(list);}public static <T> PageInfo<T> of(List<T> list, int navigatePages) {return new PageInfo(list, navigatePages);}private void calcNavigatepageNums() {int i;if (this.pages <= this.navigatePages) {this.navigatepageNums = new int[this.pages];for(i = 0; i < this.pages; ++i) {this.navigatepageNums[i] = i + 1;}} else {this.navigatepageNums = new int[this.navigatePages];i = this.pageNum - this.navigatePages / 2;int endNum = this.pageNum + this.navigatePages / 2;int i;if (i < 1) {i = 1;for(i = 0; i < this.navigatePages; ++i) {this.navigatepageNums[i] = i++;}} else if (endNum > this.pages) {endNum = this.pages;for(i = this.navigatePages - 1; i >= 0; --i) {this.navigatepageNums[i] = endNum--;}} else {for(i = 0; i < this.navigatePages; ++i) {this.navigatepageNums[i] = i++;}}}}private void calcPage() {if (this.navigatepageNums != null && this.navigatepageNums.length > 0) {this.navigateFirstPage = this.navigatepageNums[0];this.navigateLastPage = this.navigatepageNums[this.navigatepageNums.length - 1];if (this.pageNum > 1) {this.prePage = this.pageNum - 1;}if (this.pageNum < this.pages) {this.nextPage = this.pageNum + 1;}}}private void judgePageBoudary() {this.isFirstPage = this.pageNum == 1;this.isLastPage = this.pageNum == this.pages || this.pages == 0;this.hasPreviousPage = this.pageNum > 1;this.hasNextPage = this.pageNum < this.pages;}public int getPageNum() {return this.pageNum;}public void setPageNum(int pageNum) {this.pageNum = pageNum;}public int getPageSize() {return this.pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public int getSize() {return this.size;}public void setSize(int size) {this.size = size;}public int getStartRow() {return this.startRow;}public void setStartRow(int startRow) {this.startRow = startRow;}public int getEndRow() {return this.endRow;}public void setEndRow(int endRow) {this.endRow = endRow;}public int getPages() {return this.pages;}public void setPages(int pages) {this.pages = pages;}public int getPrePage() {return this.prePage;}public void setPrePage(int prePage) {this.prePage = prePage;}public int getNextPage() {return this.nextPage;}public void setNextPage(int nextPage) {this.nextPage = nextPage;}public boolean isIsFirstPage() {return this.isFirstPage;}public void setIsFirstPage(boolean isFirstPage) {this.isFirstPage = isFirstPage;}public boolean isIsLastPage() {return this.isLastPage;}public void setIsLastPage(boolean isLastPage) {this.isLastPage = isLastPage;}public boolean isHasPreviousPage() {return this.hasPreviousPage;}public void setHasPreviousPage(boolean hasPreviousPage) {this.hasPreviousPage = hasPreviousPage;}public boolean isHasNextPage() {return this.hasNextPage;}public void setHasNextPage(boolean hasNextPage) {this.hasNextPage = hasNextPage;}public int getNavigatePages() {return this.navigatePages;}public void setNavigatePages(int navigatePages) {this.navigatePages = navigatePages;}public int[] getNavigatepageNums() {return this.navigatepageNums;}public void setNavigatepageNums(int[] navigatepageNums) {this.navigatepageNums = navigatepageNums;}public int getNavigateFirstPage() {return this.navigateFirstPage;}public int getNavigateLastPage() {return this.navigateLastPage;}public void setNavigateFirstPage(int navigateFirstPage) {this.navigateFirstPage = navigateFirstPage;}public void setNavigateLastPage(int navigateLastPage) {this.navigateLastPage = navigateLastPage;}public String toString() {StringBuilder sb = new StringBuilder("PageInfo{");sb.append("pageNum=").append(this.pageNum);sb.append(", pageSize=").append(this.pageSize);sb.append(", size=").append(this.size);sb.append(", startRow=").append(this.startRow);sb.append(", endRow=").append(this.endRow);sb.append(", total=").append(this.total);sb.append(", pages=").append(this.pages);sb.append(", list=").append(this.list);sb.append(", prePage=").append(this.prePage);sb.append(", nextPage=").append(this.nextPage);sb.append(", isFirstPage=").append(this.isFirstPage);sb.append(", isLastPage=").append(this.isLastPage);sb.append(", hasPreviousPage=").append(this.hasPreviousPage);sb.append(", hasNextPage=").append(this.hasNextPage);sb.append(", navigatePages=").append(this.navigatePages);sb.append(", navigateFirstPage=").append(this.navigateFirstPage);sb.append(", navigateLastPage=").append(this.navigateLastPage);sb.append(", navigatepageNums=");if (this.navigatepageNums == null) {sb.append("null");} else {sb.append('[');for(int i = 0; i < this.navigatepageNums.length; ++i) {sb.append(i == 0 ? "" : ", ").append(this.navigatepageNums[i]);}sb.append(']');}sb.append('}');return sb.toString();}
}

JAVA PageInfo实现分页数据获取与展示相关推荐

  1. Java后端数据分页问题

    文章目录 前言 一.简易分页 二.使用Page工具封装分页(Mybatis) 1.定义相关方法及工具 2.后端方法 总结 前言 Java后端数据分页问题. 一.简易分页 前端传入分页起始页start, ...

  2. 使用PageInfo做分页时手动设置参数的实现方式

    使用PageInfo做分页时手动设置参数的实现方式 转载请标明出处: 原文首发于:http://www.zhangruibin.com 本文出自RebornChang的博客 在做项目开发的时候,pag ...

  3. 用limit 实现java的简单分页

    https://blog.csdn.net/xinyuezitang/article/details/84324359 用limit 实现java的简单分页 xinyuezitang 2018-11- ...

  4. 第二百六十四节,Tornado框架-基于正则的动态路由映射分页数据获取计算

    Tornado框架-基于正则的动态路由映射分页数据获取计算 分页基本显示数据 第一步.设置正则路由映射配置,(r"/index/(?P<page>\d*)", inde ...

  5. java web几百万分页_举例详解用Java实现web分页功能的方法

    举例详解用Java实现web分页功能的方法 发布于 2020-11-25| 复制链接 摘记: 分页问题是一个非常普遍的问题,开发者几乎都会遇到,这里不讨论具体如何分页,说明一下Web方式下分页的原理. ...

  6. JAVA毕业设计HTML5寿光农产品资源展示平台计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计HTML5寿光农产品资源展示平台计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计HTML5寿光农产品资源展示平台计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈 ...

  7. java后台获取和js拼接展示信息

    java后台获取和js拼接展示信息: html页面代码: <div class="results-bd"><table id="activityInfo ...

  8. java毕业设计HTML5寿光农产品资源展示平台源码+系统+数据库+lw文档+调试运行

    java毕业设计HTML5寿光农产品资源展示平台源码+系统+数据库+lw文档+调试运行 注意:该项目只展示部分功能,如需了解,文末获取源码地址. 临近学期结束,还是毕业设计,你还在做java程序.网络 ...

  9. Java Web实现分页查询

    目录 使用工具: 使用Jar包: 项目下载连接: 数据库表 实体类: 用户实体类: 分页实例化: 在Dao接口中定义2个方法: 接口: 实现Dao接口方法解析: service层: 接口: 接口实现: ...

最新文章

  1. SpringBoot启动标识修改
  2. 业界首个!华为联合中国信通院等发布《网络体系强基展望白皮书》
  3. Arduino的光敏传感器和超声波测距传感器测试代码
  4. 启动hadoop没有resourcemanager_5.hadoop-MR YARN架构理论与集群搭建
  5. mongodb及其索引的使用例子
  6. 史上最硬核文科生,擅长解决数学难题,却视考试成为终生噩梦
  7. 数据装载全/存量直接装载到目标表_09
  8. 软考网络管理员学习笔记6之第六章互联网技术
  9. JAVA设计模式 - 单例模式
  10. c语言中被调用函数只需在主调函数中声明,其他函数中不用声明,求助,函数在其他函数中使用时要先声明后调用,这个没声明就用了...
  11. java-DateFormat
  12. JavaScript_HTML DEMO_2_事件
  13. python numpy 下载地址
  14. 楼天城楼教主的acm心路历程
  15. 厦门龙凤419_福建生物工程职业技术学校2019招生通知书EMS单号
  16. POJ 3376 Finding Palindromes
  17. 手机消息推送方案综述
  18. h5通过当前时间获取农历日期
  19. tinymce粘贴word图片问题解决
  20. Zeppelin设置访问登录权限

热门文章

  1. MACPRO的锁屏和屏保是不一样的
  2. 代码库_自协商SGMII
  3. Dubbo架构接口自动化测试:Python +Dubbo + unittest + parameterized 框架封装
  4. CocosCreator粒子编辑器简易使用说明
  5. (毕业设计资料)基于单片机智能输液器监控系统的设计
  6. 【途虎养车】数分笔试题目整理
  7. 2018年中学五大学科国际竞赛统计
  8. Ubuntu下bundle install报错
  9. Centos7中systemd-journald占用内存过高的解决办法
  10. 黑暗逃生服务器显示无,《黑暗逃生》常见问题 已知问题及解决方案