package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import com.bean.*;
import com.user.PageHelp;
import com.user.Pager;
import com.user.GetUser;
import javax.servlet.RequestDispatcher;
public class Pagination extends HttpServlet {
/**
* Constructor of the object.
*/
public Pagination() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;;charset=GB2312");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("GB2312");
response.setCharacterEncoding("GB2312");
int totalRows=0;//数据记录总行数
Collection collection=null;
GetUser getUser=new GetUser();
//获取数据的总行数
try{
totalRows=getUser.getRows();
}catch(Exception ex){
ex.printStackTrace();
}
//通过来获得输入到页面的 Pager 对象
Pager pager=PageHelp.getPager(request, totalRows);
//从 startRow 开始取 startSize 条记录
try{
collection=getUser.getAllUser(pager.getPagesize(), pager.getStartRows());
}catch(Exception ex){
ex.printStackTrace();
}
//把 collection 集合和 pager 对象放到 request 中
request.setAttribute("user", collection);
request.setAttribute("pager", pager);
RequestDispatcher dispatcher=request.getRequestDispatcher("/JSPPagination.jsp");
dispatcher.forward(request, response);
out.close();
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/
public void init() throws ServletException {
// Put your code here
}
}
基于 MVC JSP 分页
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
在Web开发领域,MVC(Model-View-Controller)模式是一种广泛应用的设计模式,它将应用程序的业务逻辑、数据处理和用户界面分离,提高了代码的可维护性和可扩展性。JSP(JavaServer Pages)是Java EE平台中的视图技术,用于生成动态网页。当面对大量数据时,分页是必不可少的功能,它可以提高用户体验,避免一次性加载过多数据导致页面响应慢。下面将详细介绍基于MVC模式的JSP分页实现。 **1. MVC模式解析** - **模型(Model)**: 负责处理业务逻辑和数据操作,通常是JavaBean或DAO(Data Access Object)类,它们与数据库交互,获取和存储数据。 - **视图(View)**: 显示数据,通常用JSP文件实现,负责将模型中的数据呈现给用户。在JSP中,可以通过EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)标签库来方便地访问模型数据。 - **控制器(Controller)**: 接收用户的请求,处理业务逻辑,并决定下一步的操作。在Servlet或Struts、Spring MVC等框架中,控制器负责调度模型和视图。 **2. JSP分页** - **基础概念**: 分页是将大量数据按一定数量分组显示,用户可以逐页浏览,减少一次性加载的数据量。分页的关键信息包括当前页数、每页显示条数、总页数以及跳转到特定页的功能。 - **实现方式**: 在JSP中,可以使用JSTL的`<c:forEach>`标签遍历分页后的数据,同时通过EL表达式获取当前页、总页数等信息。在控制器中,根据请求参数计算出数据的起始位置,然后调用模型层的方法获取对应范围的数据。 - **URL参数**: 分页通常需要在URL中传递当前页数,如`?page=1`。可以使用`request.getParameter()`获取这个参数,然后在控制器中处理。 - **导航链接**: 在视图中,需要为用户提供导航链接,如“上一页”、“下一页”和页码链接。这些链接也需要包含当前页数,以便用户点击后跳转到正确的页面。 **3. 分页优化** - **缓存计算结果**: 如果分页信息不常改变,可以缓存总页数,避免每次请求都进行计算。 - **懒加载**: 当用户滚动到底部时才加载下一页数据,这种称为无限滚动的分页方式可以提高页面加载速度。 - **预加载**: 可以预先加载临近的几页,提供更好的用户体验,特别是当用户频繁翻页时。 - **动态调整每页显示条数**: 允许用户选择每页显示的条数,以适应不同的需求。 **4. 结合框架实现** - **Spring MVC**: Spring MVC提供了丰富的模型绑定和数据转换功能,可以方便地处理分页参数。在控制器中,可以使用`@RequestParam`注解获取分页参数,然后利用Spring Data JPA的Pageable接口进行分页查询。 - **MyBatis Plus**: 这是一个MyBatis的扩展,提供了强大的分页功能,只需在Mapper接口中添加分页注解即可实现分页查询。 通过以上讲解,我们可以看到,基于MVC模式的JSP分页涉及到多个层面的知识,包括MVC设计模式的理解、JSP视图的构建、控制器的实现以及数据库查询优化等。实际开发中,开发者需要结合具体的框架和库来实现高效、灵活的分页功能。
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JAR.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JAR.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JAR.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
- 1
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 0
- 资源: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- 基于FPGA的Verilog实现FOC电流环控制系统设计与实践:集成PI控制器与SVPWM算法,ADC采样与串口通信,清晰代码层次结构,结合Simulink模型与RTL图解,适用于BLDC与PMSM的
- VESC STM32F4磁链观测器及无感正弦FOC控制实现与工程应用:代码、文档与仿真详解,VESC STM32F4磁链观测器与无感正弦FOC控制:实现0速闭环启动技术指南,VESC STM32F4磁
- 基于Vue全家桶的现代化家庭农场管理系统设计源码
- 基于Java开发的his门诊系统设计源码
- 基于海思硬件平台与华为云的智能饮食营养数据分析系统CaloScan设计源码
- 基于微信小程序和JavaScript的半开源soulmate设计源码
- 冲床自动化送料程序:双轴控制,FX1S PLC与昆仑通态触摸屏协同,通用型板材冲压冲裁自动送料系统,冲床自动化送料程序:双轴控制,FX1S PLC与昆仑通态触摸屏协同,适用于广泛板材冲压冲裁自动送料系
- 基于JavaScript的蓝牙在线版本蓝牙秤设计源码
- 贝叶斯优化SVM模型:多特征输入与输出数据的分类预测与迭代优化图解,基于多特征输入的Bayes-SVM数据分类预测模型:迭代优化与混淆矩阵图分析,bayes-SVM贝叶斯优化支持向量机的数据分类预测
- COMSOL 5.6模拟裂隙岩体注浆中渗透率演化:变质量渗流模型研究及不同压力下的封堵模拟,COMSOL 5.6模拟裂隙岩体注浆:压力变化下的渗透率演化及变质量渗流研究,comsol5.6,模拟裂隙岩
- 基于关键点检测技术的飞机仪表盘识别设计源码
- 基于Vue框架的献血系统前端页面设计源码
- 基于Java的MaaS-ABAC-DP多维数据安全共享隐私保护设计方案源码
- 模拟浆液黏度时空变化对裂隙注浆影响的研究-基于COMSOL 5.6的数值模拟分析,模拟裂隙注浆过程中浆液黏度时空变化特征-基于Comsol 5.6模拟研究,comsol5.6,模拟浆液黏度时空变化
- 基于Vue的纯Admin管理后台项目设计源码保姆级教程文档
- 基于GPT技术的Vue框架试验性辅助学习网站设计源码
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)