什么是分页?怎么实现分页的实现?

您所在的位置:网站首页 游戏分页模式是什么意思 什么是分页?怎么实现分页的实现?

什么是分页?怎么实现分页的实现?

2024-07-15 09:20| 来源: 网络整理| 查看: 265

分页的实现

分页简介 分页(英语:Paging),是一种操作系统里存储器管理的一种技术,可以使电脑的主存可以使用存储在辅助存储器中的数据。操作系统会将辅助存储器(通常是磁盘)中的数据分区成固定大小的区块,称为“页”。当不需要时,将分页由主存(通常是内存)移到辅助存储器;当需要时,再将数据取回,加载主存中。相对于分段,分页允许存储器存储于不连续的区块以维持文件系统的整齐。分页是磁盘和内存间传输数据块的最小单位,在Java中是一种特别常见的现象,下面我将一点一点的带着大家来分析一下分页。

理解分页 分页无非就是在服务器端得到数据,然后以固定的条数来写到浏览器端进行显示的过程,要想写好分页,不非就是首先明确,一个分页功能需要包含什么样的变量,这些变量该怎么获得,是从前端页面传过来呢,还是从后端获取的呢,下面咱们来简单的了解一下: 1.totalCount :总的数据的条数,显然易见,由于数据库的数据可以变化,显然该数据需要从后台获取。 2.totalPage:总的页数,由于总的数据是从数据库中查询出来的,每页多少条数据都可以是事先知道的,所以,从后台获取 3.list 每页的数据,显然是从后台获取的 4.currentPage当前页,显然是从前台获取的,因为每次大家需要点击不同的页数,传递过来的数据都是不一样的 5rows.每页多少条数据,可以从前台获取也可以从后台获取,我建议从后台获取,可以将其存到配置文件中,可以通过获取到不同的标准,符合Java的编程理念

细节优化和讲解 首先将rows写到web.xml文件中对应的分页对应的servlet中,再通过getServletConfig().getInitParameter()初始化的时候获取: 在这里插入图片描述 各变量的简单的书写流程,大家可以简单理解一下,下面会详细解答 在这里插入图片描述 流程分析 1.首先从前台获取到当前页 2.利用service查询PageBean 3.将pageBean存到request域对象中 4.转发到list.jsp,利用jstl和el表达式来实现数据的显示 在这里插入图片描述 代码体现 将分页的详细属性封装成JavaBean,便于存到域对象中,获取其数据值

package cn.ujiuye.domain; import java.util.List; /** * 分页的javaBean */ public class PageBean { private int totalCount; //总的记录数 private int totalPage; //总的页码 private List list; //每页的数据 private int currentPage; //当前页 private int rows; //每页显示的条数 public int getTotalCount() { return totalCount; } public void setTotalCount(int totalCount) { this.totalCount = totalCount; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public List getList() { return list; } public void setList(List list) { this.list = list; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getRows() { return rows; } public void setRows(int rows) { this.rows = rows; } @Override public String toString() { return "PageBean{" + "totalCount=" + totalCount + ", totalPage=" + totalPage + ", list=" + list + ", currentPage=" + currentPage + ", rows=" + rows + '}'; } }

首先书写一个findProductByPageServlet,实现前端和后端的数据的交互,我认为首先写后台代码,再将所需要的当前页的currentPage手动通过地址栏手动传入数据,这样可以最快进入数据的书写流程,可以先检查后端代码是不是实现的没有问题 在这里插入图片描述

package cn.ujiuye.web.servlet; import cn.ujiuye.domain.PageBean; import cn.ujiuye.domain.Product; import cn.ujiuye.service.ProductService; import cn.ujiuye.service.impl.ProductServiceImpl; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class FindProductByPageServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.获取请求参数 String currentPage = request.getParameter("currentPage"); String rows = getServletConfig().getInitParameter("rows"); //判断从其他的页面传递过来的时候,这个时候需要做对其当前页的判断 if (currentPage == null || "".equals(currentPage)){ currentPage = "1"; } System.out.println("当前页码是:"+currentPage); System.out.println("每页的条数是:"+ rows); //2.调用service进行查询 ProductService service = new ProductServiceImpl(); PageBean pb = service.findUserByPage(currentPage,rows); System.out.println(pb.getTotalPage()+"***************"); //3.将pageBean存入到域对象中 request.setAttribute("pb",pb); //4.转发到list.jsp页面中去 request.getRequestDispatcher("/list.jsp").forward(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } }

在service层实现数据的业务逻辑的处理,我是用了接口的思想来实现的,把数据存入到JavaBean的时候,方便调用,将其分页的各项需求的内容都写入到JavaBean中,从前端获取的当前页,从servlet中获取的每页有多少条数据,通过dao来查询数据库中一共有多少条数据,通过计算获取其一共多少页,返回每一页有多少条数据,这些数据在service层都传入到JavaBean中,用于封装起来了

/** * 分页查询 * @param _currentPage * @param _rows * @return */ @Override public PageBean findUserByPage(String _currentPage, String _rows) { int currentPage = Integer.parseInt(_currentPage); //当前页数 int rows = Integer.parseInt(_rows); //每页多少条数据 if (currentPage


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3