一个实用的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 是一门面向对象的编程语言,因此在 Java 程序中创建对象是很常见的。在 Java 虚拟机(JVM)中,对象在内存中是如何存储和布局的呢?接下来我们将详细介绍 Java 对象存储内存布局的实现。 Java对象存储 Java 对象有两种主要的存储区域:堆和栈。 堆:是 Java 程序中最常见的内存区域,用来存储所有的对象…

    Java 2023年5月26日
    00
  • python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解

    Python中的print()函数和Java中的System.out.print()都是输出函数,它们都可以向控制台输出内容。下面详细讲解两者的区别以及两者在输出时“+”的功能。 Python中print()函数 语法 print(value1, value2, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=F…

    Java 2023年5月26日
    00
  • Spring Cloud下实现用户鉴权的方案

    下面我将为大家详细讲解“Spring Cloud下实现用户鉴权的方案”的完整攻略。本攻略分为以下几个部分: Spring Cloud微服务架构 鉴权的基本概念 用户鉴权的实现方案 示例一:使用JWT实现用户鉴权 示例二:使用OAuth2实现用户鉴权 1. Spring Cloud微服务架构 Spring Cloud是基于Spring Boot的微服务开发框架…

    Java 2023年6月3日
    00
  • 关于jsp中cookie丢失问题(详解)

    关于jsp中cookie丢失问题(详解) 问题描述 在使用JSP开发网站时,我们可能会遇到cookie丢失的问题。具体表现为,我们在设置cookie后进行页面跳转或刷新时,cookie失效了,导致之前设置的cookie信息无法获取。 问题原因 cookie的失效原因很多,以下是常见的几种情况:1. 用户关闭了浏览器或清除了浏览器缓存;2. cookie的过期…

    Java 2023年6月16日
    00
  • java编程几行代码实现买菜自由

    让我们来详细讲解一下如何用 Java 编程实现买菜自由。 核心思路 首先,我们需要有一个菜单列表,这个列表需要记录每种菜品的名称、价格和数量。接下来,用户需要输入自己想要购买的菜品和数量,程序要计算出总价并输出。 具体实现 第一步:创建菜单列表 我们可以使用 Java 中的 Map 接口来实现菜单列表。每个菜品名称都作为 Key,对应的价格和数量作为 Val…

    Java 2023年5月19日
    00
  • java防反编译最简单的技巧分享

    这里给您详细讲解一下”Java防反编译最简单的技巧分享”的完整攻略。 标题 1. 为什么要防反编译? 在Java程序中,源代码存在于Class文件中,一旦程序发布,就有可能被反编译,导致源代码泄露,甚至是代码被篡改。为了保护源代码的安全性,就必须对Java程序进行防反编译。 2. 最简单的防反编译技巧 Java程序的防反编译技巧有很多种,比如代码混淆,加密等…

    Java 2023年5月26日
    00
  • 简单实现java上传图片文件功能

    下面是详细讲解“简单实现Java上传图片文件功能”的完整攻略。 1. 确认技术栈 在开始实现上传图片文件功能之前,需要确认一下使用的技术栈。Java Web 应用的上传图片文件功能通常包含以下几个技术: HTML 表单:用于用户在浏览器中选择图片文件并提交到服务器。 Servlet:处理浏览器的请求,获取前台提交的文件数据。 文件存储:将上传的文件保存到服务…

    Java 2023年5月26日
    00
  • springboot集成mybatisplus的详细步骤

    关于如何在Spring Boot项目中集成MyBatis Plus,其详细步骤如下: 引入依赖 在 pom.xml 中添加以下依赖: <!– Mybatis Plus –> <dependency> <groupId>com.baomidou</groupId> <artifactId>myba…

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