[TOC]
## 问题01:为什么要进行分页显示?
数据库中很多情况下都存在**大量数据**,一次显示所有数据不仅造成**数据库负担过重**,同时增加网页**渲染负担**,且网页内容太多也会造成**用户体验差**。
## 问题02:分页显示的方法和原理?
1. 逻辑分页(代码逻辑上的分页)
2. 物理分页(数据库查询层面的分页)
## 问题03:实现物理分页。
物理分页:使用数据库查询的关键字**limit**,在查询的时候就只查询需要的部分数据即可。
优点:每次查询到的**数据量都较小**(只有一页的数据量)
缺点:每次翻页都是一次数据库连接和查询,**频繁连接数据库**。
1. 所需参数:当前页面page ;
2. 所需参数:每页显示的条数PAGE_SIZE ;
3. 获取数据:当前页page的所有数据list ;
4. 计算获得:数据总条数count ;
5. 计算获得:数据总页数pages ;
6. 创建页码:列出所有页码以及当前页StringBuffer。
## 问题04:实现逻辑分页。
逻辑分页:将数据所有数据都查询出来之后,用过代码来控制集合的分割来实现数据分割。
优点:如果将查询结果保存到session,则可以较少翻页时的查询次数,**减少数据库操作次数**。
缺点:缓存了数据,可能造成**数据不一致**,且查询到的**数据量大**,依旧是全部数据。
1. 所需参数:当前页面page;
2. 所需参数:每页显示的条数PAGE_SIZE;
3. 获取数据:所有数据list ;
4. 计算获得:当前页page的所有数据pagelist ;
5. 创建页码:列出所有页码以及当前页StringBuffer 。
## 问题05:创建导航栏
1. 在视图增加导航栏容器,接收导航栏
2. 在控制器中生成导航栏所有内容,包括页面、链接等
3. 控制器调用工具类对导航栏进行处理,需要参数pages、count、currentPage
- 1课程概述
- 2环境配置
- 3MVC
- 3.1View
- 3.1.1前端基础
- 3.1.2JSP语法
- 3.1.3JSP内置对象1
- 3.1.4JSP内置对象2
- 3.2Bean
- 3.3Controller
- 3.3.1Servlet
- 3.3.2Filter
- 3.3.3Listener
- 3.4EL&JSTL
- 4三层架构
- 4.1数据库操作
- 4.1.1JDBC
- 4.1.2JDBC优化
- 4.2三层架构设计
- 4.3程序优化
- 4.3.1数据库连接优化
- 4.3.2数据库操作优化
- 4.4安全专题
- 4.4.1Ajax异步查询
- 4.4.2CAPTCHA
- 4.4.3MD5&SHA
- 4.4.4Cookie
- 4.4.5分页显示
- 4.4.6文件上传
- 4.4.7发送邮件
- 5企业级框架
- 5.0Maven
- 5.1MyBatis
- 5.2Spring
- 5.3SpringMVC
- 6实践项目
- 6.1实验1-用户登录(MVC)
- 6.2实验2-访问统计(Servlet高级)
- 6.3实验3-三层架构
- 6.4实验4-安全信息系统