我的思路:
1.分析:主要包含当前页(currentPage)、每页的条数(pageSize)、总页数(totalPage),总条数(count)通过sql语句获取。
SELECT * FROM stuinfo LIMIT 0,3;-- 分页,偏移量,从第一条记录开始,显示三条数据
SELECT * FROM stuinfo LIMIT (currentPage-1)*pageSize,pageSize;-- 分页公式
INT totalPage=Math.ceil(COUNT*1.0/pageSize);-- 总页数,总条数/每页显示条数,向上取整
SELECT COUNT(*) FROM stuinfo;-- 计算总条数
2..写好jsp页面,包括表格、上一页或下一页的跳转按钮。
3.写好javaBean类,包含currentPage、pageSize、totalPage、count、list(每页的数据)。
4.写web层servlet:
a.先定义currentPage为1,pageSize为4。
b.添加非空判断,第一次访问资源,可能为空,如果不做非空判断只能显示第一页。
String currPage = request.getParameter("currentPage");
if(currPage!=null){
currentPage=Integer.parseInt(currPage);
}
c.调用业务逻辑,注意把currentPagepageSize作为参数传递,通过PageBean创建对象接值。
d.分发转向,将接到值放入setAttribute,并跳转到table(表)页面。
5.写service层进行逻辑处理:
a.调用dao层的方法,求出总条数。通过count/pageSize得到总页数,总页数一般作为最后一页。
b.调用dao层的方法,求出当前页的数据集合,并接收。创建javaBean对象,将currentPage、pageSize、totalPage、count、list都存入(set)。
c.注意,一定要返回创建的对象!
6.写dao层获取数据:
a.写求总条数的方法,sql语句为"select count(*) from table",注意以long类型接值,并返回int类型。
b.写求list的方法,sql语句为""SELECT * FROM stuinfo LIMIT ?,?"",当前页为(currentPage-1)*pageSize,每页数据数量pageSize。
7.回到jsp界面添加跳转链接,并分析:
a.上一页下一页跳转判断
首页为1
${pb.currentPage==1?1:pb.currentPage-1}上一页
${pb.currentPage==pb.totalPage?pb.totalPage:pb.currentPage+1}下一页
${pb.totalPage}尾页
${pb.currentPage }/${pb.totalPage }当前页面
b.表格内的数据需要从javaBean里的list集合中获取。
c.特别注意的是:jsp页面第二行要添加<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> ,用于调用EL表达式