Javaweb实现分页功能

本文详细介绍了如何在Java应用中实现分页功能,包括创建Page类封装数据,DAO层的查询方法,以及Service和Controller层的调用,最后展示了如何在前端展示分页效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、分页的目的

二、分页功能具体实现

1.封装一个分页所需的数据的中间类Page

2.在持久化层(dao)实现获取所有用户数据和每页显示数据条数的方法

        定义一个接口

         实现接口中的方法

3.在service层实现分页方法

        定义一个接口

          实现接口中的方法

4.controller层中创建一个Servlet

5.前台网页获取数据

三、运行结果


1.分页就是让页面可以显示指定条数的数据,可以更容易查看数据。

2.使阅读结果变得更方便

3.减轻服务器查询的压力 

二、分页功能具体实现
1.封装一个分页所需的数据的中间类Page
public class Page implements Serializable{
    private int pageNum;//当前页码(前台提交)
    private int totalNum;//数据库查询
    private int pageSize = 10;//自定义
    private int totalPageNum;//=totalNum/pagesize
    private int startIndex;//(pageNum)*10+1
    private int startPage;//开始页码
    private int endPage;//结束页码
    private List<?> list = null;
    
    //计算多少页码
    public Page(int pageNum, int totalNum){
        this.pageNum = pageNum;
        this.totalNum = totalNum;
        if (totalNum%pageSize==0){
            totalPageNum = totalNum/pageSize;

        }else {
            totalPageNum = totalNum/pageSize+1;
        }
        startIndex = (pageNum-1)*pageSize;
        
        //算出控制页面切换按钮的数据
        if (totalPageNum<5){
            startPage = 1;
            endPage = totalPageNum;

        }else {
            if (pageNum<3){
                startPage = 1;
                endPage = 5;
            }else {
                if (pageNum>(totalPageNum-3)){
                    startPage = totalPageNum-4;
                    endPage = totalPageNum;
                }else {
                    startPage = pageNum - 2;
                    endPage = pageNum + 2;
                }
            }
        }
    }

    public int getPageNum() {
        return pageNum;
    }

    public void setPageNum(int pageNum) {
        this.pageNum = pageNum;
    }

    public int getTotalNum() {
        return totalNum;
    }

    public void setTotalNum(int totalNum) {
        this.totalNum = totalNum;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public int getTotalPageNum() {
        return totalPageNum;
    }

    public void setTotalPageNum(int totalPageNum) {
        this.totalPageNum = totalPageNum;
    }

    public int getStartIndex() {
        return startIndex;
    }

    public void setStartIndex(int startIndex) {
        startIndex = startIndex;
    }

    public int getStartPage() {
        return startPage;
    }

    public void setStartPage(int startPage) {
        this.startPage = startPage;
    }

    public int getEndPage() {
        return endPage;
    }

    public void setEndPage(int endPage) {
        this.endPage = endPage;
    }

    public List<?> getList() {
        return list;
    }

    public void setList(List<?> list) {
        this.list = list;
    }
}
2.在持久化层(dao)实现获取所有用户数据和每页显示数据条数的方法
        定义一个接口

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值