一个实用的JSP分页代码

下面将详细讲解“一个实用的JSP分页代码”的完整攻略。

什么是JSP分页

JSP分页指的是在JSP页面中,将数据分页展示的一种技术手段。在web应用程序中,当需要展示的数据量非常大时,为了提高用户的体验和应用程序的性能,通常使用JSP分页技术来实现只展示一部分数据的效果。

怎么实现JSP分页

实现JSP分页的核心思想是根据当前页面和页面大小计算出要展示的数据的索引范围,在数据库中查询对应的数据,然后再进行展示。实现JSP分页的步骤如下:

  1. 获取当前页面和页面大小
int currentPage = Integer.parseInt(request.getParameter("currentPage"));//获取当前页面
int pageSize = Integer.parseInt(request.getParameter("pageSize"));//获取页面大小
  1. 根据当前页面和页面大小计算出要展示的数据的索引范围
int start = (currentPage - 1) * pageSize;//计算起始索引
int end = currentPage * pageSize;//计算终止索引
  1. 在数据库中查询对应的数据
String sql = "SELECT * FROM table LIMIT ?, ?";//查询语句
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, start); //设置起始索引
ps.setInt(2, pageSize); //设置页面大小
ResultSet rs = ps.executeQuery();
  1. 根据查询结果进行展示
<%
    while(rs.next()){
%>
        <!-- 展示数据 -->
<%
    }
%>
  1. 获取数据总数并计算出总页数
int totalCount = rs.getInt("count"); //获取数据总数
int totalPages = (totalCount + pageSize - 1) / pageSize; //计算总页数
  1. 展示分页工具条
<%
    if(currentPage > 1){
%>
        <a href="?currentPage=<%=currentPage - 1%>&pageSize=<%=pageSize%>">上一页</a>
<%
    }
    for(int i = 1; i <= totalPages; i++){
        if(i == currentPage){
%>
            <span><%=i%></span>
<%
        }else{
%>
            <a href="?currentPage=<%=i%>&pageSize=<%=pageSize%>"><%=i%></a>
<%
        }
    }
    if(currentPage < totalPages){
%>
        <a href="?currentPage=<%=currentPage + 1%>&pageSize=<%=pageSize%>">下一页</a>
<%
    }
%>

一个JSP分页的示例

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

<%
    int currentPage = (request.getParameter("currentPage") == null) ? 1 : Integer.parseInt(request.getParameter("currentPage"));
    int pageSize = (request.getParameter("pageSize") == null) ? 10 : Integer.parseInt(request.getParameter("pageSize"));
%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP分页示例</title>
</head>
<body>
    <table border="1">
        <thead>
            <tr>
                <th>id</th>
                <th>name</th>
            </tr>
        </thead>
        <tbody>
<%
    String sql = "SELECT * FROM test LIMIT ?, ?";
    PreparedStatement ps = conn.prepareStatement(sql);
    int start = (currentPage - 1) * pageSize;
    ps.setInt(1, start);
    ps.setInt(2, pageSize);
    ResultSet rs = ps.executeQuery();
    while(rs.next()){
%>
            <tr>
                <td><%=rs.getInt("id")%></td>
                <td><%=rs.getString("name")%></td>
            </tr>
<%
    }
    rs.close();
%>
        </tbody>
    </table>
<%
    String countSql = "SELECT COUNT(*) AS count FROM test";
    PreparedStatement countPs = conn.prepareStatement(countSql);
    ResultSet countRs = countPs.executeQuery();
    int totalCount = 0;
    int totalPages = 0;
    if(countRs.next()){
        totalCount = countRs.getInt("count");
        totalPages = (totalCount + pageSize - 1) / pageSize;
    }
    countRs.close();

    if(currentPage > 1){
%>
        <a href="?currentPage=<%=currentPage - 1%>&pageSize=<%=pageSize%>">上一页</a>
<%
    }
    for(int i = 1; i <= totalPages; i++){
        if(i == currentPage){
%>
            <span><%=i%></span>
<%
        }else{
%>
            <a href="?currentPage=<%=i%>&pageSize=<%=pageSize%>"><%=i%></a>
<%
        }
    }
    if(currentPage < totalPages){
%>
        <a href="?currentPage=<%=currentPage + 1%>&pageSize=<%=pageSize%>">下一页</a>
<%
    }
%>
</body>
</html>

以上就是实现JSP分页的完整攻略和示例。通过以上的代码,在JSP页面中就可以实现数据分页的效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一个实用的JSP分页代码 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • MyBatis一次执行多条SQL语句的操作

    MyBatis是一款优秀的持久化框架,通过映射文件将SQL语句和Java方法进行映射,使得Java应用程序可以方便地访问数据库,提高数据库操作的效率和安全性。在实际应用中,有时需要执行多条SQL语句的操作,本文将详细讲解MyBatis一次执行多条SQL语句的操作的完整攻略。 1. 如何执行多条SQL语句的操作 在MyBatis中,通过使用<script…

    Java 2023年5月26日
    00
  • 深入理解JVM之Class类文件结构详解

    “深入理解JVM之Class类文件结构详解”是一篇关于Java虚拟机中Class类文件结构的详细讲解文章,主要介绍了Java虚拟机中的Class文件格式、Class文件头、常量池、访问标志、类索引、父类索引、接口索引集合、实例字段表、类字段表等方面的知识点。 以下是针对每个章节的详细讲解: Class文件格式 Class文件格式是Java虚拟机中Class文…

    Java 2023年5月19日
    00
  • Java异常(Exception)处理以及常见异常总结

    关于Java异常处理以及常见异常总结的攻略共分为以下几个部分: 异常概念 Java异常分类 异常处理 常见异常总结 示例说明 1. 异常概念 Java异常是在程序执行期间出现的错误或异常情况。异常在程序执行过程中会中断程序的正常执行,并且在出现问题的位置抛出异常信息。一个方法如果没有特殊处理异常的机制,当出现异常时会使程序崩溃。 2. Java异常分类 Ja…

    Java 2023年5月26日
    00
  • vue2+springsecurity权限系统的实现

    下面我来详细讲解“vue2+springsecurity权限系统的实现”的完整攻略。 一、前后端分离架构说明 前后端分离架构是近年来比较流行的一种架构模式,其核心思想就是将前端与后端完全分离,前端负责 UI 的实现和展示,后端则提供数据接口 API。这种架构模式的优点是前后端职责分离,能提高开发效率和维护性,同时能提供更好的用户体验和响应速度。 二、技术选型…

    Java 2023年6月3日
    00
  • 老生常谈java数组中的常见异常

    讲解“老生常谈java数组中的常见异常”的完整攻略,可以按照以下步骤进行: 1. 数组越界异常(ArrayIndexOutOfBoundsException) 这个异常是在数组下标超过数组的长度时发生的异常,下标从0开始,数组长度是从1开始,因此我们需要通过下标加减一来判断是否存在这个下标。 int[] array = {1, 2, 3, 4, 5}; in…

    Java 2023年5月26日
    00
  • idea关联maven的使用详解

    idea关联maven的使用详解 在使用 IntelliJ IDEA 进行Web应用程序开发时,使用 Maven 管理工程是非常常见的方式。在使用 IntelliJ IDEA 进行 Maven 管理 Web 工程开发时,需要将 IntelliJ IDEA 与本地的 Maven 程序进行关联,这样才能使用 Maven 的所有功能进行 Web 应用程序开发。下面…

    Java 2023年5月20日
    00
  • Java解析XML(4种方式)案例详解

    Java解析XML(4种方式)案例详解 1. Java解析XML的概念 在Java开发中,我们经常需要读取和修改一些XML格式的文件。XML全称为Extensible Markup Language(可扩展标记语言),是W3C组织推出的标记语言。 XML是一种纯文本格式,用来描述数据。它通过标签的方式来组织数据,标签包含了属性和值,这些在XML文件中都可以很…

    Java 2023年5月19日
    00
  • 教你用Java实现一个简单的代码生成器

    教你用Java实现一个简单的代码生成器 介绍 本篇攻略将指导读者实现一个简单的代码生成器,该生成器可以根据输入的参数生成指定模板的代码文件。该生成器基于Java语言实现,适用于Java开发者。 工具准备 为了编写该生成器,我们需要准备以下工具和环境: JDK(Java Development Kit) Maven(可以选择,不强制要求) 开发集成环境(IDE…

    Java 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部