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线程池必知必会知识点总结

    Java线程池必知必会知识点总结 在并发编程中,线程池是一种重要的资源管理方式。线程池可以管理和执行多个线程,从而提高程序的性能和效率,同时还能避免线程创建和销毁的开销。 本文将介绍Java线程池的相关知识点,包括线程池的基本概念、实现原理、使用方法和注意事项。 线程池的基本概念 Java中的线程池主要有两种实现方式:FixedThreadPool和Cach…

    Java 2023年5月20日
    00
  • Idea2020.2创建JavaWeb项目(部署Tomcat)方法详解

    Idea2020.2创建JavaWeb项目(部署Tomcat)方法详解 在你使用 IntelliJ IDEA(以下简称 IDEA)创建基于 JavaWeb 技术的 Web 项目时,需要在 IDEA 中设置 Tomcat 服务器,并在项目部署时将其与 Tomcat 进行绑定,以便成功启动和访问。接下来就为你详细讲解使用 Idea2020.2 创建 JavaWe…

    Java 2023年6月2日
    00
  • Java反射之通过反射获取一个对象的方法信息(实例代码)

    使用Java反射可以在运行时获取一个类的各种信息,包括类的属性、方法、构造器等。本文将介绍如何通过反射获取一个对象的方法信息,并提供两个示例进行说明。 获取对象的方法信息 要获取一个对象的方法信息,需要使用Java反射中的Method类。Method类提供了关于类或接口中单独某个方法的信息和访问权限。 使用反射获取对象的方法信息的步骤如下: 获取该类的Cla…

    Java 2023年5月26日
    00
  • Spring Boot 2.0.0 终于正式发布-重大修订版本

    SpringBoot2.0.0终于正式发布-重大修订版本攻略 SpringBoot2.0.0是SpringBoot发布的一个重大修订版本,本次更新对整个Spring Framework进行了重构和升级,以适应更高效、更快速的应用程序开发。本文将详细介绍如何使用SpringBoot2.0.0,包括安装、创建项目、配置、测试以及示例代码。 安装 安装Spring…

    Java 2023年5月15日
    00
  • Java实现一个简单的定时器代码解析

    下面是Java实现一个简单的定时器的完整攻略: 1. 概述 在Java中,我们可以使用Timer和TimerTask类来实现一个简单的定时器。 2. Timer和TimerTask类 2.1 Timer类 Timer类表示一个定时器,可以用来设置定时任务。Timer类提供了以下方法: schedule(TimerTask task, long delay):…

    Java 2023年5月18日
    00
  • Springboot集成activity过程图解

    以下是关于“Springboot集成activity过程图解”的完整攻略。 步骤一:添加依赖 首先,在Spring Boot项目中添加依赖,以便可以使用activity。 在项目的pom.xml文件中添加以下依赖项: <dependency> <groupId>org.activiti</groupId> <arti…

    Java 2023年5月15日
    00
  • pom文件中${project.basedir}的使用

    当我们在使用Maven构建Java项目时,经常会用到pom.xml文件来配置依赖,打包方式等信息。在pom.xml中,经常会用到${project.basedir}这个变量,那么这个变量如何使用呢? 1. ${project.basedir}的作用 ${project.basedir}是Maven中的一种预定义属性,它代表的是项目的根目录。在pom.xml中…

    Java 2023年5月19日
    00
  • 带你重新认识MyBatis的foreach

    好的。MyBatis是一款非常流行的ORM框架,而foreach标签是MyBatis中比较常用的一个标签,可以方便地在SQL中进行集合参数的遍历操作。 以下是带你重新认识MyBatis的foreach的完整攻略: 1. 简介 foreach标签用于循环遍历集合参数中的元素,并将每个元素作为SQL查询的参数传递进去。它可以用在SELECT、INSERT、UPD…

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