javaweb做的运动会信息管理系统

45 阅读4分钟

Lab7 - 运动会管理系统

项目简介

这是一个基于 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. 运动会管理模块

  • 列表查询 (SportsMeetListServlet)
    • 显示所有运动会信息
  • 添加运动会 (SportsMeetAddServlet)
    • 添加新的运动会记录(名称、日期、地点、描述、状态)
  • 编辑运动会 (SportsMeetEditServlet)
    • 根据ID查询运动会信息,跳转到编辑页面
  • 更新运动会 (SportsMeetUpdateServlet)
    • 更新运动会信息
  • 删除运动会 (SportsMeetDeleteServlet)
    • 根据ID删除运动会记录

数据库设计

user 表

字段名类型说明
emailvarchar(30)邮箱(主键)
user_password1varchar(15)密码
user_password2varchar(15)确认密码
user_namevarchar(15)用户名
birth_placevarchar(10)籍贯
ageint(2)年龄
genderenum('女','男')性别
interestvarchar(20)兴趣
causevarchar(200)原因

sports_meet 表

字段名类型说明
idint(11)主键(自增)
meet_namevarchar(100)运动会名称
meet_datevarchar(20)举办日期
locationvarchar(100)举办地点
descriptionvarchar(500)描述
statusenum('筹备中','进行中','已结束')状态

环境要求

  • 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:3307/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/lab7/(默认跳转到登录页面)

主要技术特点

  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