JavaWeb分页的实现代码实例

网友投稿 304 2022-12-18


JavaWeb分页的实现代码实例

这篇文章主要介绍了javaWeb分页的实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

分页的分类

分页的实现分为真分页和假分页两种。

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 currPageSthttp://r = 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 &HEFYgValt;= 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" %>

第${page.currPage }页/共${page.totalPage }页




版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java中的String定义的字面量最大长度是多少
下一篇:mybatis if标签使用总结
相关文章

 发表评论

暂时没有评论,来抢沙发吧~