在Web开发中,我们经常会遇到需要分页展示数据的需求。比如,在后台管理系统中,我们需要展示大量的用户信息、订单信息等,如果一次性全部加载到页面上,页面会非常卡顿,用户体验也会大打折扣。因此,分页展示数据就变得尤为重要。下面,我将通过一个jsp条件查询分页实例,为大家详细讲解如何实现数据分页展示。
一、项目环境
* 开发工具:Eclipse
* 服务器:Tomcat 9.0
* 数据库:MySQL 5.7
* 开发语言:Java、JSP
二、数据库设计
我们需要创建一个数据库表来存储数据。以下是一个简单的用户信息表结构:
```sql
CREATE TABLE `users` (
`id` INT NOT NULL AUTO_INCREMENT,
`username` VARCHAR(50) NOT NULL,
`password` VARCHAR(50) NOT NULL,
`email` VARCHAR(100) NOT NULL,
`phone` VARCHAR(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
三、项目结构
接下来,我们来规划一下项目结构:
```
project
│
├── src
│ ├── com
│ │ └── demo
│ │ ├── action
│ │ │ └── UserAction.java
│ │ ├── dao
│ │ │ └── UserDao.java
│ │ ├── entity
│ │ │ └── User.java
│ │ └── util
│ │ └── DBUtil.java
│ ├── webapp
│ │ ├──WEB-INF
│ │ │ ├──web.xml
│ │ │ └──jsp
│ │ │ ├──index.jsp
│ │ │ ├──list.jsp
│ │ │ └──add.jsp
│ │ └──css
│ │ └──style.css
│ └── web.xml
└── pom.xml
```
四、关键代码
1. User实体类
```java
package com.demo.entity;
public class User {
private int id;
private String username;
private String password;
private String email;
private String phone;
// 省略getter和setter方法
}
```
2. UserDao接口
```java
package com.demo.dao;
import java.util.List;
public interface UserDao {
List
int findCount();
}
```
3. UserDao实现类
```java
package com.demo.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.demo.dao.UserDao;
import com.demo.entity.User;
import com.demo.util.DBUtil;
public class UserDaoImpl implements UserDao {
@Override
public List
List
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = DBUtil.getConnection();
String sql = "