JavaWeb分页的实现代码实例

下面是一份JavaWeb分页的实现代码实例攻略。

1. 需求分析

在网站中,当数据量较大时,我们需要把它分页显示,从而提高用户体验。而JavaWeb框架中可以使用JSP来实现分页的功能。具体来说,我们需要针对以下几个步骤实现分页功能。

2. 分页实现步骤

2.1 准备工作

首先,我们需要创建一个数据表来存储数据,其次我们需要创建一个JavaBean来封装数据,如下:

public class Student {
    private int id;
    private String name;
    private int age;

    // 必须要有getter和setter方法
    // ...
}

2.2 实现数据查询

其次,我们需要对数据库进行查询操作,可以使用JDBC或MyBatis来实现。以JDBC为例,代码如下:

public List<Student> queryByPage(int pageSize, int pageNum) {
    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;

    try {
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/test";
        String user = "root";
        String password = "123456";
        conn = DriverManager.getConnection(url, user, password);

        String sql = "select * from student limit ?, ?";
        ps = conn.prepareStatement(sql);
        ps.setInt(1, (pageNum - 1) * pageSize); // 计算从哪行开始查询
        ps.setInt(2, pageSize); // 每页显示的行数
        rs = ps.executeQuery();

        List<Student> list = new ArrayList<>();
        while (rs.next()) {
            Student student = new Student();
            student.setId(rs.getInt("id"));
            student.setName(rs.getString("name"));
            student.setAge(rs.getInt("age"));
            list.add(student);
        }
        return list;
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            if (rs != null) rs.close();
            if (ps != null) ps.close();
            if (conn != null) conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    return null;
}

2.3 显示数据

通过查询,我们获得了当前页的数据,接下来就是将其展示给用户。在JSP中,我们可以使用JSTL和EL表达式来操作JavaBean对象。比如:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
    <title>分页</title>
</head>
<body>
    <table border="1">
        <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>年龄</th>
        </tr>
        <c:forEach items="${students}" var="student">
            <tr>
                <td>${student.id}</td>
                <td>${student.name}</td>
                <td>${student.age}</td>
            </tr>
        </c:forEach>
    </table>
</body>
</html>

在这里,我们使用了标签来遍历JavaBean中的每个对象,并使用EL表达式${student.id}等来获取对象中的属性值。

2.4 实现分页功能

最后一步是实现分页功能,这里我们可以使用Bootstrap的分页组件。具体实现如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
    <title>分页</title>
    <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
    <table class="table table-striped">
        <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>年龄</th>
        </tr>
        <c:forEach items="${students}" var="student">
            <tr>
                <td>${student.id}</td>
                <td>${student.name}</td>
                <td>${student.age}</td>
            </tr>
        </c:forEach>
    </table>
    <ul class="pagination">
        <c:if test="${currentPage > 1}">
            <li><a href="?pageNum=${currentPage-1}">&laquo;</a></li>
        </c:if>
        <c:forEach begin="1" end="${totalPage}" var="i">
            <c:choose>
                <c:when test="${i eq currentPage}">
                    <li class="active"><a href="?pageNum=${i}">${i}</a></li>
                </c:when>
                <c:otherwise>
                    <li><a href="?pageNum=${i}">${i}</a></li>
                </c:otherwise>
            </c:choose>
        </c:forEach>
        <c:if test="${currentPage < totalPage}">
            <li><a href="?pageNum=${currentPage+1}">&raquo;</a></li>
        </c:if>
    </ul>
</body>
</html>

在这里,我们使用了等标签进行不同条件的判断,最终实现分页的功能。

3. 示例说明

以上是对JavaWeb分页的实现代码实例的完整攻略,下面分别列举两个示例说明。

示例1:简单分页

比如我们要在页面上显示10条数据,每页只显示3条数据,那么访问第1页只显示从第0-2条数据,访问第2页只显示从第3-5条数据,访问第3页只显示从第6-8条数据,访问第4页只显示第9条数据。

示例2:正常分页

比如我们要在页面上显示100条数据,每页只显示10条数据,那么访问第1页只显示从第0-9条数据,访问第2页只显示从第10-19条数据,访问第3页只显示从第20-29条数据,访问第4页只显示第30-39条数据,以此类推。同时,如果当前数据不足10条时(比如最后一页只有7条数据),就只显示最后7条。

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

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • Java利用TreeUtils工具类实现列表转树

    下面是Java利用TreeUtils工具类实现列表转树的完整攻略。 1.准备工作 在进行列表转树操作前,需要先准备好列表数据。假设列表中每个元素都具有一个唯一标识符id和一个父元素标识符parentId,我们可以封装一个类来表示列表元素: public class TreeNode { private String id; private String pa…

    Java 2023年5月20日
    00
  • spring-kafka使消费者动态订阅新增的topic问题

    要解决spring-kafka消费者动态订阅新增的topic问题,可以通过以下步骤完成: 步骤一:配置动态topic管理器 动态topic管理器可以监听主题变化并动态更新topic列表。spring-kafka可以通过自定义Topic管理器实现: @Component public class DynamicTopicManager implements A…

    Java 2023年5月20日
    00
  • Spring MVC数据绑定概述及原理详解

    Spring MVC数据绑定概述 在Spring MVC中,数据绑定是将HTTP请求参数绑定到Java对象的过程。它是将用户提交的表单数据转换为Java对象的重要步骤。Spring MVC提供了多种数据绑定方式,包括基本类型、数组、集合、Map、自定义类型等。在本文中,我们将详细介绍Spring MVC数据绑定的原理及其使用方法。 Spring MVC数据绑…

    Java 2023年5月17日
    00
  • Spring Boot缓存实战之Redis 设置有效时间和自动刷新缓存功能(时间支持在配置文件中配置)

    Spring Boot缓存实战之Redis 设置有效时间和自动刷新缓存功能 在Spring Boot应用程序中使用缓存可以提高应用程序的性能和可扩展性。在缓存的过期时间到达时,应用程序将重新获取数据,并创建一个新的缓存项。在本文中,我们将探讨如何在Spring Boot应用程序中使用Redis来缓存数据,以及如何设置有效时间和自动刷新缓存功能。 设置依赖 首…

    Java 2023年5月31日
    00
  • MyBatis如何实现流式查询的示例代码

    流式查询是MyBatis中常用的一种查询方式,能够在处理大量数据时提高查询效率。以下是详细的 MyBatis 如何实现流式查询的攻略,包括两条示例代码: 1. 流式查询 流式查询被称为“游标”查询,是基于 JDBC 游标实现的。它的实现方式是通过一次读取一批数据,然后处理它们,最后再继续读取下一批数据。这样可以避免一次性读取所有匹配数据所带来的内存开销和响应…

    Java 2023年5月19日
    00
  • jsp中变量及方法的声明与使用

    一、JSP中变量声明与使用 在JSP中,我们可以使用JSP表达式和JSP脚本来声明和使用变量。其中,JSP表达式使用${ },而JSP脚本则使用<% %>。 JSP表达式 JSP表达式可以用来在页面中输出一个变量的值,或者把表达式的结果赋值给一个变量。使用JSP表达式声明的变量只在当前页面中有效。 示例1: <% String name =…

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

    下面是详细讲解Spring Security配置多个数据源并添加登录验证码的实例代码的完整攻略: 什么是Spring Security? Spring Security是针对基于Spring的应用程序的安全框架,它提供了一组可以在应用程序中使用的安全服务,例如身份验证和授权。 Spring Security配置多个数据源并添加登录验证码的步骤 第一步:添加依…

    Java 2023年5月20日
    00
  • JPA如何设置表名和实体名,表字段与实体字段的对应

    JPA(Java Persistence API)是Java EE技术规范之一,主要用于ORM(Object-relational mapping)操作。在使用JPA时,有时需要设置表名和实体名,以及将表字段与实体字段对应,本文将为您提供设置表名和实体名、表字段与实体字段对应的完整攻略,本文中所有示例代码均使用Hibernate实现JPA。 设置表名和实体名…

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