一个实用的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日

相关文章

  • 浅谈Java 三种方式实现接口校验

    让我来详细讲解一下“浅谈Java 三种方式实现接口校验”的完整攻略。 标题 介绍 接口校验是指在进行接口调用时,对传入参数的合法性进行校验,以避免非法参数对系统造成的危害。Java中有多种实现接口校验的方法,本文将介绍三种常用方式: 使用第三方框架 使用注解方式 使用AOP面向切面编程 第一种:使用第三方框架 如果你对接口校验的要求比较简单,可以考虑使用第三…

    Java 2023年5月20日
    00
  • Java 网络爬虫基础知识入门解析

    Java 网络爬虫基础知识入门解析 概述 网络爬虫是一种通过编程方式自动化提取互联网上数据的技术。对于Java开发者而言,使用Java的网络爬虫应该会是最自然的想法。本文将介绍Java网络爬虫的基础知识,以及如何使用Java实现一个网络爬虫。 爬虫原理 一个基本的网络爬虫需要完成以下几个步骤: 发送HTTP请求获取页面内容 解析获取到的页面内容 保存所需的数…

    Java 2023年5月23日
    00
  • Springboot+SpringSecurity+JWT实现用户登录和权限认证示例

    让我为您详细讲解一下“Springboot+SpringSecurity+JWT实现用户登录和权限认证示例”的攻略。 首先,需要安装以下工具: Java开发环境 Maven构建工具 然后,我们需要按照以下步骤进行实现: 1.添加依赖 在pom.xml文件中添加以下依赖: <dependency> <groupId>org.spring…

    Java 2023年5月20日
    00
  • Java面试题之HashMap 的 hash 方法原理是什么

    HashMap 的 hash 方法原理是什么 在了解HashMap的原理之前, 我们先看看hash散列表是怎么工作的, 他的原理是什么。 散列表的原理是将关键字通过散列函数映射到固定的位置上, 并对原始值进行处理, 最终得到的值就是我们所说的哈希值, 即在HashMap中所表现出来的值。在JDK1.7之前,HashMap的内部实现方式是数组 + 链表,数组的…

    Java 2023年5月26日
    00
  • 详解SpringBoot读取配置文件的N种方法

    下面是详解SpringBoot读取配置文件的N种方法的完整攻略: 1. 前言 SpringBoot是一个灵活、高效的Java框架,可以用来轻松构建Web应用程序。在SpringBoot中,读取配置文件是非常重要的一部分。本文将介绍SpringBoot读取配置文件的N种方法,并附带代码示例。 2. 通过@Value注解读取配置文件 @Value注解是Sprin…

    Java 2023年5月19日
    00
  • Java解压缩zip – 解压缩多个文件或文件夹实例

    下面是“Java解压缩zip – 解压缩多个文件或文件夹实例”的完整攻略: 前置要求 在进行Java解压缩zip操作之前,需要先安装并配置好Java开发环境。 解压缩多个文件或文件夹实例 在Java中,我们可以使用ZipFile类和ZipEntry类来进行解压缩操作。 ZipFile类 ZipFile类表示表示一个zip文件,我们可以通过它来获取zip文件中…

    Java 2023年5月20日
    00
  • Spring Security配置多个数据源并添加登录验证码的实例代码

    下面我会给你详细讲解Spring Security配置多个数据源并添加登录验证码的实例代码。 1. 添加验证码 首先,我们需要添加验证码功能。我们可以通过在Spring Security过滤器链中添加一个自定义的过滤器来完成此操作。具体实现如下: public class ValidateCodeFilter extends OncePerRequestFi…

    Java 2023年6月3日
    00
  • Java 中的 BufferedWriter 介绍_动力节点Java学院整理

    Java 中的 BufferedWriter 介绍 什么是 BufferedWriter BufferedWriter 是 Java.io 包中提供的一个字符缓冲输出流,它内部封装了一个字符缓冲区(Buffer),可以提高字符输出效率。 BufferedWriter 的构造方法 BufferedWriter 提供了两个构造方法: public Buffere…

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