怎么在JavaWeb中实现分页?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

雄县ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
分页的分类
分页的实现分为真分页和假分页两种。
1.真分页(物理分页):
实现原理: SELECT * FROM xxx [WHERE...] LIMIT ?, 10;
第一个参数是开始数据的索引位置
10是要查询多少条数据,即每页显示的条数
优点: 不会造成内存溢出
缺点: 翻页的速度比较慢
2.假分页(逻辑分页):
实现原理: 一次性将所有的数据查询出来放在内存之中,每次需要查询的时候就直接从内存之中去取出相应索引区间的数据
优点: 分页的速度比较快
缺点: 可能造成内存溢出
分页的一些术语:
- -- 数据总条数: totalCount : select count(1) from t_user; 
- -- 每页显示条数:pageSize 
- -- 总页数:totalPage 
- -- 当前页:currPage 
- -- 起始索引: startIndex 
-- 通过当前页码查询第几页的数据
select * from t_user limit 0, 5; -- 页码 1
select * from t_user limit 5, 5; -- 页码 2
select * from t_user limit 10, 5; -- 页码 3
-- 公式:startIndex = (currPage - 1) * pageSize
-- 计算一共有多少页
-- 方法一:result = totalCount%pageSize,如果余数result为0,
-- totalPage = totalCount / pageSize
-- 如果余数result不为0,
-- totalPage = totalCount / pageSize + 1;
-- 方法二:totalPage = (totalCount + pageSize - 1) / pageSize
Pageing工具类
public class PaginationBean{ private List dataList; private int currPage; private int totalPage; public List getDataList() { return dataList; } public void setDataList(List dataList) { this.dataList = dataList; } public int getCurrPage() { return currPage; } public void setCurrPage(int currPage) { this.currPage = currPage; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } } 
Servlet
@WebServlet("/showUserList")
public class ShowUserListServlet extends HttpServlet implements Servlet {
  
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    String operation = request.getParameter("operation");
    String currPageStr = request.getParameter("currPage");
    int currPage = 0;
    
    IUserService userSevice = new UserServiceImpl();
    int totalPage = userSevice.getTotalPage();
    
    if ("首页".equals(operation) || operation == null || currPageStr == null || currPageStr.length() == 0) {
      
      currPage = 1;
    } else if ("上一页".equals(operation)) {
      
      currPage = Integer.parseInt(currPageStr) - 1;
      if (currPage <= 0) {
        currPage = 1;
      }
    } else if ("下一页".equals(operation)) {
      
      currPage = Integer.parseInt(currPageStr) + 1;
      if (currPage >= totalPage) {
        currPage = totalPage;
      }
    } else {
      
      currPage = totalPage;
    }
    
    List userList = userSevice.getUserListByCurrPage(currPage);
    
    PaginationBean pageBean = new PaginationBean();
    pageBean.setDataList(userList);
    pageBean.setCurrPage(currPage);
    pageBean.setTotalPage(totalPage);
    
    request.setAttribute("page", pageBean);
    
    request.getRequestDispatcher("/userList.jsp").forward(request, response);
  }
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }
}   jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%-- 引入JSTL --%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>Insert title here 
| ID | 姓名 | 密码 | 身份证号 | 
|---|---|---|---|
| ${user.id } | ${user.name } | ${user.pwd } | ${user.idCard } | 
关于怎么在JavaWeb中实现分页问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。
分享题目:怎么在JavaWeb中实现分页
网页链接:http://www.cqwzjz.cn/article/jchddi.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 