分页思想以及基础实现(Servlet+jsp)

首先,要进行分页,必须要知道一共有多少条数据,(一般实战中的数据都是从数据库中获取的,在这儿我们用简单的for循环虚拟出100条数据,然后接受在list中),知道了一共有多少条数据,还要知道每一页放置几条数据,这样就知道了一共有多少页,在分页进行前后跳转时,要知道当前页是第几页。还需要知道每页的开始下标和结束下标才能进行分页
totalCount:总记录数
pageSize:每页放置记录数
pageCount:总页数
currentPage:当前页
starIndex:开始下标
endIndex:结束下标

User.java
public class User {
private int id;
private String name;
private int age;
public User(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public User() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

FenyeServlet.java
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(“/fenye”)
public class fenye extends HttpServlet {
private static final long serialVersionUID = 1L;
public fenye() {
super();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    List<Array> list=new ArrayList<>();
    for(int i=0;i<100;i++){
        list.add(new User(i+1,"张三"+i,18));
    }
    int totalCount=list.size();
    int pageSize=3;
    int pageCount=(totalCount-1)/pageSize+1;
    int currentPage=(request.getParameter("currentPage"),1);
    int startIndex=currrentPage*(pageSize-1);
    int endIndex=pageSize*(currentPage>pageCount?pageCount:currentPage);
    List<User> l=list.subList(startIndex,endIndex);
    request.serAttribute("totalCount",totalCount);
    request.setAttribute("currentPage",currentPage);
    request.setAttribute("pageCount",pageCount);
    request.setAttribute("lsit",l);
    request.getRequestDispatcher("/fenye.jsp").forword(request,response);
    }

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
}

}

fenye.jsp
<%@ page language=”java” contentType=”text/html; charset=UTF-8”
pageEncoding=”UTF-8”%>
<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core”%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:foreach var="l" items="${list }" >
${l.id }---------${l.name }-------${l.age }
<br />
</c:foreach>
<br>
一共有${totalCount } 条数据,一共有${pageCount}页,每页显示${pageSize}条数据
<a href="fenye?currentPage=1">首页</a>
<a href="fenye?currentPage=${currentPage eq 1?1:currentPage-1"}上一页</a>
<a href="fenye?currentPage=${currentPage eq pageCount?pageCount:currentPage+1}">下一页</a>
<a href="fenye?currentPage=${pageCount}">尾页</a>

</body>
</html>

猜你喜欢

转载自blog.csdn.net/fxmdlf/article/details/78015443
今日推荐