学生管理系统
项目简介
这是一个基于 Java Web 技术开发的学生管理系统,实现了用户注册、登录、注销以及学生信息的增删改查功能。
技术栈
- 后端框架: Jakarta Servlet API
- 前端技术: JSP + JSTL
- 数据库: MySQL 8.0
- 连接池: Alibaba Druid
- ORM工具: Apache Commons DBUtils
- 测试框架: JUnit 5
- 开发工具: IntelliJ IDEA
项目结构
lab7/
├── src/ # Java源代码
│ └── cn/edu/lzit/
│ ├── dao/ # 数据访问层
│ │ ├── BaseDAO.java # 基础DAO类
│ │ ├── UserDAO.java # 用户DAO接口
│ │ ├── SportsMeetDAO.java # 学生DAO接口
│ │ └── impl/ # DAO实现类
│ ├── entity/ # 实体类
│ │ ├── User.java # 用户实体
│ │ └── SportsMeet.java # 学生实体
│ ├── servlet/ # Servlet控制器
│ │ ├── UserLoginServlet.java
│ │ ├── UserRegisterServlet.java
│ │ ├── UserLogoutServlet.java
│ │ ├── SportsMeetListServlet.java
│ │ ├── SportsMeetAddServlet.java
│ │ ├── SportsMeetEditServlet.java
│ │ ├── SportsMeetUpdateServlet.java
│ │ └── SportsMeetDeleteServlet.java
│ ├── filter/ # 过滤器
│ │ └── CharacterFilter.java # 字符编码过滤器
│ ├── util/ # 工具类
│ │ └── DatabaseFactory.java # 数据库连接工厂
│ └── test/ # 测试类
├── web/ # Web资源
│ ├── index.jsp # 首页
│ ├── login.jsp # 登录页面
│ ├── register.jsp # 注册页面
│ ├── login_success.jsp # 登录成功页面
│ ├── logout_result.jsp # 注销结果页面
│ ├── sportsmeet_list.jsp # 学生列表页面
│ ├── sportsmeet_add.jsp # 添加学生页面
│ ├── sportsmeet_edit.jsp # 编辑学生页面
│ ├── js/ # JavaScript文件
│ └── WEB-INF/
│ └── web.xml # Web配置文件
├── lib/ # 第三方jar包
├── sql/ # 数据库脚本
│ └── example.sql # 数据库初始化脚本
└── src/
└── druid.properties # Druid连接池配置
功能模块
1. 用户管理模块
- 用户注册 (
UserRegisterServlet)- 支持用户信息注册(邮箱、密码、姓名、籍贯、年龄、性别、兴趣、原因等)
- 用户登录 (
UserLoginServlet)- 邮箱和密码验证
- 登录成功后跳转到功能页面
- 用户注销 (
UserLogoutServlet)- 注销当前登录的会员账号
2. 学生管理模块
- 列表查询
- 显示所有学生信息
- 添加学生
- 添加新的学生记录
- 编辑学生
- 根据ID查询学生信息,跳转到编辑页面
- 更新学生
- 更新学生信息
- 删除学生
- 根据ID删除学生记录
环境要求
- JDK: 1.8 或更高版本
- MySQL: 8.0 或更高版本
- 应用服务器: Tomcat 9.0 或更高版本(支持 Jakarta Servlet API)
- IDE: IntelliJ IDEA(推荐)
部署步骤
1. 数据库配置
- 创建 MySQL 数据库:
CREATE DATABASE example CHARACTER SET gbk;
- 执行 SQL 脚本初始化表结构:
mysql -u root -p example < sql/example.sql
- 修改数据库连接配置:
编辑
src/druid.properties文件,修改以下配置:
url=jdbc:mysql://localhost:3306/example?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username=root
password=root
根据实际情况修改端口号、用户名和密码。
2. 项目配置
- 在 IntelliJ IDEA 中打开项目
- 配置项目 SDK 和项目结构
- 确保所有依赖 jar 包已添加到项目库中(lib 目录下的 jar 包)
3. 运行项目
- 配置 Tomcat 服务器
- 部署项目到 Tomcat
- 启动 Tomcat 服务器
- 访问
http://localhost:8080/example/(默认跳转到登录页面)
主要技术特点
-
MVC 架构模式
- Model: Entity 实体类
- View: JSP 页面
- Controller: Servlet 控制器
-
DAO 模式
- 使用接口和实现类分离
- BaseDAO 提供通用的数据库操作方法
- 使用 Apache Commons DBUtils 简化 JDBC 操作
-
连接池管理
- 使用 Druid 连接池提高数据库连接效率
- 支持连接池监控和统计
-
字符编码处理
- CharacterFilter 过滤器统一处理请求和响应的字符编码(UTF-8)
-
异常处理
- 统一的异常处理机制
- 数据库操作异常转换为运行时异常
测试
项目包含 JUnit 5 测试类:
DatabaseFactoryTest: 数据库连接工厂测试UserDAOTest: 用户DAO测试SportsMeetDAOTest: 学生DAO测试
运行测试类可以验证数据库操作的正确性。
注意事项
- 确保 MySQL 服务已启动
- 数据库字符集建议使用
gbk或utf8mb4 - 修改数据库连接配置后需要重新编译项目
- 首次运行前需要执行 SQL 脚本创建表结构
- 项目使用 Jakarta Servlet API,需要支持 Servlet 4.0+ 的服务器
开发说明
-
所有 Servlet 使用
@WebServlet注解配置,无需在 web.xml 中手动配置 -
字符编码过滤器使用
@WebFilter("/*")注解,对所有请求生效 -
数据库操作使用 PreparedStatement 防止 SQL 注入
-
使用 Session 管理用户登录状态