首先,要进行分页,必须要知道一共有多少条数据,(一般实战中的数据都是从数据库中获取的,在这儿我们用简单的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>