jsp 语言 实现 JSP 页面数据分页跳转示例

JSP阿木 发布于 2025-07-03 17 次阅读


JSP 页面数据分页跳转示例实现

在Web开发中,数据分页是一种常见的功能,它可以帮助用户更方便地浏览大量数据。JSP(JavaServer Pages)是一种用于创建动态Web内容的页面技术,它允许开发者在HTML页面中嵌入Java代码。本文将围绕JSP语言,实现一个简单的数据分页跳转示例,并详细解释其实现过程。

环境准备

在开始之前,请确保以下环境已经准备就绪:

1. Java开发环境(如JDK 1.8+)

2. Web服务器(如Apache Tomcat 9+)

3. 集成开发环境(如Eclipse或IntelliJ IDEA)

数据库准备

为了实现分页功能,我们需要一个数据库来存储数据。以下是一个简单的示例数据库表结构:

sql

CREATE TABLE users (


id INT PRIMARY KEY AUTO_INCREMENT,


username VARCHAR(50),


email VARCHAR(100)


);


插入一些示例数据:

sql

INSERT INTO users (username, email) VALUES ('user1', 'user1@example.com');


INSERT INTO users (username, email) VALUES ('user2', 'user2@example.com');


INSERT INTO users (username, email) VALUES ('user3', 'user3@example.com');


-- ... 更多数据


JSP分页跳转实现

1. 创建分页控制器

我们需要创建一个分页控制器,用于处理分页逻辑。在JSP页面中,我们可以使用JSP标准标签库(JSTL)来实现分页功能。

创建一个名为`PaginationController.jsp`的文件,并添加以下内容:

jsp

<%@ page import="java.sql." %>


<%@ page import="javax.servlet.http." %>


<%@ page import="javax.servlet.jsp." %>


<%@ page contentType="text/html;charset=UTF-8" language="java" %>


<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%


// 数据库连接信息


String url = "jdbc:mysql://localhost:3306/your_database";


String username = "your_username";


String password = "your_password";

// 分页参数


int pageSize = 5; // 每页显示的记录数


int currentPage = 1; // 当前页码


if (request.getParameter("page") != null) {


currentPage = Integer.parseInt(request.getParameter("page"));


}

// 计算总记录数


int totalRecords = 0;


try {


Connection conn = DriverManager.getConnection(url, username, password);


Statement stmt = conn.createStatement();


ResultSet rs = stmt.executeQuery("SELECT COUNT() FROM users");


if (rs.next()) {


totalRecords = rs.getInt(1);


}


rs.close();


stmt.close();


conn.close();


} catch (SQLException e) {


e.printStackTrace();


}

// 计算总页数


int totalPages = (totalRecords + pageSize - 1) / pageSize;

// 计算起始索引


int startIndex = (currentPage - 1) pageSize;

// 获取当前页数据


List<User> users = new ArrayList<>();


try {


Connection conn = DriverManager.getConnection(url, username, password);


PreparedStatement pstmt = conn.prepareStatement("SELECT FROM users LIMIT ?, ?");


pstmt.setInt(1, startIndex);


pstmt.setInt(2, pageSize);


ResultSet rs = pstmt.executeQuery();


while (rs.next()) {


User user = new User();


user.setId(rs.getInt("id"));


user.setUsername(rs.getString("username"));


user.setEmail(rs.getString("email"));


users.add(user);


}


rs.close();


pstmt.close();


conn.close();


} catch (SQLException e) {


e.printStackTrace();


}


%>

<!DOCTYPE html>


<html>


<head>


<title>用户列表</title>


</head>


<body>


<h1>用户列表</h1>


<table border="1">


<tr>


<th>ID</th>


<th>用户名</th>


<th>邮箱</th>


</tr>


<%


for (User user : users) {


%>


<tr>


<td><%= user.getId() %></td>


<td><%= user.getUsername() %></td>


<td><%= user.getEmail() %></td>


</tr>


<%


}


%>


</table>


<div>


<%


if (currentPage > 1) {


%>


<a href="PaginationController.jsp?page=<%= currentPage - 1 %>">上一页</a>


<%


}


%>


<span>第 <%= currentPage %> 页,共 <%= totalPages %> 页</span>


<%


if (currentPage < totalPages) {


%>


<a href="PaginationController.jsp?page=<%= currentPage + 1 %>">下一页</a>


<%


}


%>


</div>


</body>


</html>


2. 创建用户实体类

创建一个名为`User.java`的文件,并添加以下内容:

java

public class User {


private int id;


private String username;


private String email;

// 省略构造方法、getter和setter方法


}


3. 部署和测试

将`PaginationController.jsp`和`User.java`文件放置在Web应用的根目录下。启动Tomcat服务器,并在浏览器中访问`http://localhost:8080/your-app-context/PaginationController.jsp`,即可看到分页效果。

总结

本文通过JSP和JDBC技术实现了一个简单的数据分页跳转示例。在实际项目中,您可能需要根据具体需求调整分页参数、数据库连接信息以及页面布局。希望本文能对您有所帮助。