javaweb做的学生管理系统

44 阅读3分钟

学生管理系统

项目简介

这是一个基于 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. 数据库配置

  1. 创建 MySQL 数据库:
CREATE DATABASE example CHARACTER SET gbk;
  1. 执行 SQL 脚本初始化表结构:
mysql -u root -p example < sql/example.sql
  1. 修改数据库连接配置: 编辑 src/druid.properties 文件,修改以下配置:
url=jdbc:mysql://localhost:3306/example?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username=root
password=root

根据实际情况修改端口号、用户名和密码。

2. 项目配置

  1. 在 IntelliJ IDEA 中打开项目
  2. 配置项目 SDK 和项目结构
  3. 确保所有依赖 jar 包已添加到项目库中(lib 目录下的 jar 包)

3. 运行项目

  1. 配置 Tomcat 服务器
  2. 部署项目到 Tomcat
  3. 启动 Tomcat 服务器
  4. 访问 http://localhost:8080/example/(默认跳转到登录页面)

主要技术特点

  1. MVC 架构模式

    • Model: Entity 实体类
    • View: JSP 页面
    • Controller: Servlet 控制器
  2. DAO 模式

    • 使用接口和实现类分离
    • BaseDAO 提供通用的数据库操作方法
    • 使用 Apache Commons DBUtils 简化 JDBC 操作
  3. 连接池管理

    • 使用 Druid 连接池提高数据库连接效率
    • 支持连接池监控和统计
  4. 字符编码处理

    • CharacterFilter 过滤器统一处理请求和响应的字符编码(UTF-8)
  5. 异常处理

    • 统一的异常处理机制
    • 数据库操作异常转换为运行时异常

测试

项目包含 JUnit 5 测试类:

  • DatabaseFactoryTest: 数据库连接工厂测试
  • UserDAOTest: 用户DAO测试
  • SportsMeetDAOTest: 学生DAO测试

运行测试类可以验证数据库操作的正确性。

注意事项

  1. 确保 MySQL 服务已启动
  2. 数据库字符集建议使用 gbkutf8mb4
  3. 修改数据库连接配置后需要重新编译项目
  4. 首次运行前需要执行 SQL 脚本创建表结构
  5. 项目使用 Jakarta Servlet API,需要支持 Servlet 4.0+ 的服务器

开发说明

  • 所有 Servlet 使用 @WebServlet 注解配置,无需在 web.xml 中手动配置

  • 字符编码过滤器使用 @WebFilter("/*") 注解,对所有请求生效

  • 数据库操作使用 PreparedStatement 防止 SQL 注入

  • 使用 Session 管理用户登录状态

登录.png

列表.png

首页.png

添加.png

修改.png

注册.png