首页 > 其他分享 >jsp与Dao层合作实现分页功能

jsp与Dao层合作实现分页功能

时间:2023-10-07 09:22:11浏览次数:32  
标签:分页 int 当前页 Dao request jsp totalPages currentPage public

  1. studentList.jsp里面加样式居中和分页栏

居中:.pagination {
    text-align: center;
}

 

 

分页栏:

 <div class="pagination">
    <c:if test="${currentPage > 1}">
        <a href="${pageContext.request.contextPath}/ShowStudentServlet?page=${currentPage - 1}">上一页</a>
    </c:if>

    <c:forEach begin="1" end="${totalPages}" var="pageNumber">
        <c:choose>
            <c:when test="${pageNumber == currentPage}">
                <!--判断当前页码是否等于当前页数-->
                <!--相等-->
                <strong>${pageNumber}</strong>
            </c:when>
            <c:otherwise>
                <!--不相等,设置链接地址到当前页码-->
                <a href="${pageContext.request.contextPath}/ShowStudentServlet?page=${pageNumber}">${pageNumber}</a>
            </c:otherwise>
        </c:choose>
    </c:forEach>

    <c:if test="${currentPage < totalPages}">
        <!--判断当前页数是否小于总页数。如果成立,则显示一个链接到下一页的 <a> 元素。-->
        <a href="${pageContext.request.contextPath}/ShowStudentServlet?page=${currentPage + 1}">下一页</a>
    </c:if>
</div>

 

 

创建工具类:Page

package com.cn.util;

public class Page {

        private int currentPage;//当前页
        private int totalPages;//总页数

        public Page(int currentPage, int totalPages) {
            this.currentPage = currentPage;
            this.totalPages = totalPages;
        }

        public int getCurrentPage() {//----------------------------返回当前页数。

            return currentPage;
        }

        public void setCurrentPage(int currentPage) {//--------------设置当前页数。

            this.currentPage = currentPage;
        }

        public int getTotalPages() {//----------------------------返回总页数。

            return totalPages;
        }

        public void setTotalPages(int totalPages) {//------------设置总页数。

            this.totalPages = totalPages;
        }
    }

 

在Servlet里面:

 

代码段1:

int currentPage = 1;//当前页面
int pageSize = 10;//页面数据条数

String pageParam = request.getParameter("page");
if (pageParam != null && !pageParam.isEmpty()) {
    //pageParam不为空且不为空字符串(null表示空,.isEmpty()表示长度为0判断是否有效)
    currentPage = Integer.parseInt(pageParam);
}

修改:String countSql = "SELECT COUNT(*) FROM student";

代码段2:

int totalRecords = resultSet.getInt(1);//总记录(所有数据数)
int totalPages = (int) Math.ceil((double) totalRecords / pageSize);//总页面

String sql = "SELECT * FROM student LIMIT ?, ?";
int offset = (currentPage - 1) * pageSize;
//根据当前页数和每页显示数量计算出偏移量。由于页数从1开始计数,所以需要减去1
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, offset);//偏移量
preparedStatement.setInt(2, pageSize);//每页显示数量
resultSet = preparedStatement.executeQuery();//将结果保存到结果集

代码段3:

request.setAttribute("totalPages", totalPages);//总页数
request.setAttribute("currentPage", currentPage);//当前页

 

标签:分页,int,当前页,Dao,request,jsp,totalPages,currentPage,public
From: https://www.cnblogs.com/thousandLeafFallingWood/p/17745503.html

相关文章

  • ACCESS 报表分页-指定显示固定行数
    在报表中插入三个无关联的文本框控件,取名分别为Text,Text2,Text3,他们的宽/高,上/左边距按需求自定义,可见均设置为否,如果你需要显示序号的话,text3可设置为可见text 控件来源:=1text2:控件来源: =IIf([Text]<[Text3]+1,[Text],IIf(([Text]Mod[Text3])=0,[Text3],([Text......
  • 分页查询传入对象初始化
    publicclassLimitRequest<T>{privateintpageStart=0;//开始limit第一个参数privateintpageEnd=0;//结束limit第二个参数privateintpageIndex;//页数privateintpageSize;//行数privateTdata;publicLimitReque......
  • The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online (The 2nd Universal Cup
    The2018ACM-ICPCAsiaQingdaoRegionalContest,Online(The2ndUniversalCup.Stage1:Qingdao)J-PresstheButton\(1\leqa,b,c,d\leq10^6\)题解容易发现存在循环节,每次位于\(gcd(a,c)\)的倍数的位置所以我们考虑处理一个循环节内的情况如果\(v\le......
  • SqlServer数据库分页查询问题排查
    使用docker安装下载镜像dockersearchmssql-serverdockerpulldatagrip/mssql-server-linux创建容器dockerrun-d--namesqlserver-p1433:1433-e'ACCEPT_EULA=Y'-e'SA_PASSWORD=szz123456'datagrip/mssql-server-linuxACCEPT_EULA需要设置为Y以接受SQL......
  • 主流常见关系数据库分页sql语句写法。MySQL、PostgreSQL、SQLite、Oracle、DB2、SQL S
    前言1.分页sql逻辑:每页10条,取第3页。即取第21~30条数据1.1.MySQL/SQLite/PostgreSQLselect*fromdemolimit10offset20;select*fromdemolimit20,10;--PostgreSQL不支持该写法1.2.Oracle12C+Oracle11g之前很难用,Oracle12C+与MySQL用法格式一样了,只是语法关......
  • JSP技术
    JSP技术基础第1关:JSP脚本元素1-5DABBB6-8BCB第2关:JSP指令1-5AABBB第3关:JSP隐式对象1-2BD第4关:EL表达式和JSTL标签库1-5ADCCD6-8DAD基于JSP的网上商店packagecom.educoder.service.impl;importjava.util.List;importcom.educoder.entity.Goods;i......
  • 批量爬取多分页多张图片
    importurllib.requestfromlxmlimportetree#https://sc.chinaz.com/tupian/siwameinvtupian.htmlurl='https://sc.chinaz.com/tupian/siwameinvtupian_2.html'defgetTenGirlPhote(page):headers={'User-Agent':'Mozil......
  • 为什么会变成这样呢? #6(奇偶分页问题)
    现在你有一个长度为\(n\)的01串\(s\),每次操作你可以选择一个后缀并将其中的0和1互换,求将其完全变为0所需要的最小操作次数和操作方法。期望复杂度:\(O(n)\)。lcw'slemma显然,对于任意一个后缀\([i,n]\),其要么被操作一次,要么不被操作,且操作顺序不影响。更进一步地,lcw......
  • JSP功能简介
    JSP能够改变HTML内容getElementById()是多个JavaScriptHTML方法之一。使用该方法来“查找”id="demo"的HTML元素,并把元素内容(innerHTML)更改为"HelloJavaScript":点击前:点击后:JSP能改变HTML的属性通过改变【img】标签的src属性(source)来改变一张HTML图像:点击......
  • Gym 104270 The 2018 ICPC Asia Qingdao Regional Programming Contest (The 1st Univ
    A.SequenceandSequenceB.KawaExam可以发现,对答案会产生影响的只有割边,把所有边双缩起来,然后就是一个森林。考虑一个树的时候怎么做,就是对于每条边求出这条边两端的众数个数,考虑线段树合并,每次动态维护子树内的众数和子树外的众数。#include<iostream>#include<cstdio>......