分页

分页功能在网页中是非常常见的一个功能,其作用也就是将数据分割成多个页面来进行显示。

使用场景: 当取到的数据量达到一定的时候,就需要使用分页来进行数据分割。
当我们不使用分页功能的时候,会面临许多的问题:

客户端的问题: 如果数据量太多,都显示在同一个页面的话,会因为页面太长严重影响到用户的体验,也不便于操作,也会出现加载太慢的问题。
服务端的问题: 如果数据量太多,可能会造成内存溢出,而且一次请求携带的数据太多,对服务器的性能也是一个考验。
分页的分类
分页的实现分为真分页和假分页两种,也就是物理分页和逻辑分页。

1.真分页(物理分页):

实现原理: SELECT * FROM xxx [WHERE…] LIMIT #{param1}, #{param2}
第一个参数是开始数据的索引位置
第二个参数是要查询多少条数据
优点: 不会造成内存溢出
缺点: 翻页的速度比较慢

最后一个问题就是隐藏多余的页数了,数据量太多的话,底下几百页的页码没法看。当然这个问题没有什么具体的解决方案,因为仔细观察的话,你会发现基本上很多网站的分页都还不一样。而且这也是一个前端的问题,在JSP里面就能处理。

我这里使用的方案是:显示首页和尾页,显示上一页和下一页,显示当前页,其余页使用省略号代替。具体逻辑如下:

判断当前页和首页的距离,如果是0,则不显示首页;
判断当前页和首页的距离,如果是1,则显示首页,不显示前一个省略号;
判断当前页和首页的距离,如果大于2,则显示首页和前一个省略号;
显示当前页;
逻辑类似前一段,判断当前页和末页的距离,决定是否显示末页和后一个省略号。
————————————————
版权声明:本文为CSDN博主「乐百川」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011054333/article/details/54632265

serverlet分页相关推荐

  1. java分页(java分页插件pagehelper)

    在Java中如何用Serverlet实现分页查看数据库 serverlet跟分页关系不大吧.想得到可以啊,看查询语句怎么写的了.最好在查询语句中使用分页查询,页面上做一下获取页数什么的处理.全部查询在 ...

  2. 手把手教你JavaEE的分页查询、分页展示,有了这个,你的项目又多了一个谈资

    前言: 我们在写项目的时候,往往有一些项目的信息展示.而展示的数据量往往是很大的,这时候,加入一个分页的功能往往是最理想的选择. 先简单描述一下功能: 根据你的数据量和指定的页面展示数据条数,进行查询 ...

  3. django自带的分页功能

    django自带的分页功能 django中自带的分页功能有缺陷,但是也是一种思路,所以在下做一个整理,方便以后使用,还有服务各位小伙伴. django视图部分的代码.(注释才是重点) from dja ...

  4. Mysql分页order by数据错乱重复

    公司用的是Mybatis,发现分页和排序时直接传递参数占位符用的都是 ,由于,由于,由于有SQL注入风险,要改为#,但是封装page类又麻烦,所以直接使用了 pageHelper 插件了,方便快捷,但 ...

  5. Django 分页和使用Ajax5.3

    分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据, ...

  6. [JAVA EE] JPA 查询用法:自定义查询,分页查询

    项目已上传:https://codechina.csdn.net/qq_36286039/javaee 自定义查询 问题:内置的crud功能不满足需求时如何添加自定义查询? 几种自定义查询方法 方法命 ...

  7. datatable java实现分页_jQuery Datatable - 使用Php的服务器端处理数据分页

    我有jquery datatable分页的问题(服务器端处理) . 例如,我在数据库中有 24 条记录 . 计数正确显示,总分页也正确显示 . 当我点击 Next or 2nd page 时,它会根据 ...

  8. Oracle分页存储过程

    CREATE OR REPLACE Procedure Soa_Getpager(p_Pagesize Int, --每页记录数p_Pageno Int, --当前页码,从 1 开始p_Sqlcols ...

  9. mybaties分页

    首先引入jar包: <dependency><groupId>com.github.pagehelper</groupId><artifactId>pa ...

最新文章

  1. 社会主义基本经济规律是经济效益规律
  2. 学习LD_PRELOAD之摘抄
  3. 测试人员容易遗漏一些隐藏的缺陷
  4. 用Java写有关早上的语录,实用的适合早上发的早安问候语语录汇编39句
  5. 图像傅里叶变换的频率怎么理解?【转载】
  6. Android手机打造你的PythonJava开发工具!
  7. socket网络编程 java_Java Web 基础(一) 基于TCP的Socket网络编程
  8. 中国抗生素骨水泥行业市场供需与战略研究报告
  9. 动态规划问题以及诸多实例分析
  10. JS里设控件不可用取值
  11. Java中高级面试必问之多线程TOP50(含答案)
  12. 乐高叉车wedo教案_乐高 WEDO自带12个活动教学参考书.pdf
  13. excel筛选中文或者筛选数字
  14. 《Tableau数据可视化从入门到精通》之读取PDF文件数据
  15. skyeye linux qt,在ARM9上安装Linux,利用SkyEye模拟器及U-BOOT引导
  16. 让理科生沉默,让文科生落泪的题
  17. 深度剖析数据在内存中的存储(修炼内功~吊打面试官)
  18. 战胜拖延—不要让拖延毁了自己
  19. 怎么查看电脑主板最大支持多大的内存
  20. 此主机支持 AMD-V,但 AMD-V 处于禁用状态。 如果已在 BIOS/固件设置中禁用 AMD-V,或主机自更改此设置后从未重新启动,则 AMD-V 可能被禁用。 (1) 确认 BIOS/固

热门文章

  1. 计算机考研408每日一题 day45
  2. MySQL8.0 相关汇总 不断完善 持续更新……
  3. B. Kevin and Permutation codeforces1754B
  4. 16进制怎么转换潘通_使用此免费应用程序查找Pantone颜色十六进制代码
  5. ful join关联字段都含null值报错
  6. java学习笔记-初学IO流
  7. wireshark 学习 2
  8. ganglia 监控mysql_Ganglia监控
  9. 锤子---坚果智能手机发布观感
  10. Spark 报错 no Java class corresponding to Product with Serializable found