Java课程设计-教学论坛系统-团队博客

教学论坛系统 - 团队项目博客

一、项目简介

教学论坛系统是一个基于 Java Web 的交流平台,类似于百度贴吧。系统支持普通用户注册登录、发布帖子、回复帖子、点赞、搜索、上传下载附件,以及查看活跃度排名。管理员可以对帖子进行审核管理、用户管理和板块管理。

项目 Git 地址https://gitee.com/java-forum-1127/forum


功能架构图

flowchart TB A[教学论坛系统] --> B[普通用户端] A --> C[管理员后台] B --> B1[用户模块] B1 --> B1a[用户注册] B1 --> B1b[用户登录] B1 --> B1c[用户退出] B --> B2[帖子模块] B2 --> B2a[查看首页帖子] B2 --> B2b[发布新帖] B2 --> B2c[查看帖子详情] B2 --> B2d[搜索帖子] B2 --> B2e[查看我的帖子] B --> B3[互动模块] B3 --> B3a[回复帖子] B3 --> B3b[点赞帖子] B3 --> B3c[查看我的回帖] B --> B4[统计与资源模块] B4 --> B4a[活跃度排名] B4 --> B4b[上传附件] B4 --> B4c[下载资源] C --> C1[帖子审核管理] C1 --> C1a[查看待审核帖子] C1 --> C1b[审核通过] C1 --> C1c[审核拒绝] C1 --> C1d[删除帖子] C --> C2[用户管理] C2 --> C2a[查看所有用户] C2 --> C2b[禁用用户] C2 --> C2c[恢复用户] C --> C3[板块管理] C3 --> C3a[添加板块] C3 --> C3b[删除板块]

二、项目采用技术

技术分类 具体技术
开发语言 Java (JDK 21)
前端技术 JSP、HTML、CSS、JavaScript、Ajax
后端技术 Servlet
数据库 MySQL 8.0
服务器 Apache Tomcat 9
开发工具 VS Code
版本管理 Git
代码规范扫描 阿里巴巴 P3C-PMD 规则集 + PMD 插件
数据库连接 JDBC + 连接池

三、功能需求分析

3.1 普通用户功能

序号 功能模块 功能描述
1 用户注册 用户填写用户名、密码进行注册
2 用户登录 用户输入账号密码登录系统
3 用户退出 用户退出登录状态
4 查看论坛首页 展示所有已审核通过的帖子
5 发布新帖 用户发布新帖子,默认进入待审核状态
6 查看帖子详情 点击帖子查看详细内容和回复
7 回复帖子 对已发布的帖子进行回复
8 点赞帖子 用户对感兴趣的帖子点赞
9 查看我的帖子 查看当前用户发布的所有帖子
10 查看我的回帖 查看当前用户发布的所有回复
11 搜索帖子 按标题关键词搜索帖子
12 活跃度排名 查看用户发帖/回帖活跃度排行榜
13 上传附件 发帖时上传附件
14 下载资源 下载帖子中的附件资源

3.2 管理员功能

序号 功能模块 功能描述
1 管理员登录 使用管理员账号登录后台
2 进入管理后台 跳转至管理后台页面
3 审核待审核帖子 查看所有待审核的帖子
4 通过帖子 审核通过,帖子显示在首页
5 拒绝帖子 审核拒绝,帖子不显示
6 删除帖子 直接删除违规帖子
7 管理用户 查看所有注册用户
8 禁用用户 禁止违规用户发言
9 恢复用户 解除用户禁用状态
10 管理板块 查看所有板块
11 添加板块 创建新的讨论板块
12 删除板块 删除不需要的板块

四、项目亮点

  1. 帖子审核机制:普通用户发布的帖子需要管理员审核通过后才能显示在首页,有效防止垃圾信息。

  2. 用户活跃度排名:系统根据用户的发帖数和回帖数实时计算活跃度得分,激励用户参与讨论。

  3. 附件上传下载:支持用户在发帖时上传附件,其他用户可以下载,方便资源共享。

  4. 权限控制:区分普通用户和管理员权限,管理员拥有审核、禁用等管理功能。

  5. 点赞互动:用户可以对优质帖子点赞,增强社区互动性。


五、系统主要功能截图

5.1 论坛首页

01-论坛首页

5.2 用户登录/注册

02-用户登录

5.3 发布帖子

04-发布新贴

5.4 帖子详情与回复

06-帖子详情

5.5 管理员后台 - 帖子审核

11-管理后台首页

5.6 用户管理

13-用户管理

5.7 活跃度排名

10-活跃度排名


六、团队成员负责模块

姓名 班级 角色 负责模块 主要任务
孙昱晓 计科拔尖班25-1 组长 回复模块,点赞模块,管理员模块 回复,自动更新,保证数据一致性,发布、分页列表、详情搜索
张嘉怡 计科拔尖班25-1 组员 前端页面模块 前端页面美化、后台页面美化
魏雨馨 计科拔尖班25-1 组员 用户,活跃度统计,资源上传下载 活跃度排名/附件上传下载

七、Git 提交记录截图

7.1 项目 Git 提交总览

image

7.2 各成员提交记录

(放每位成员的提交记录截图)

组长 - 孙昱晓 的提交记录:

屏幕截图 2026-06-27 220756

组员 - 张嘉怡 的提交记录:

image

组员 - 魏雨馨 的提交记录:
image


八、静态代码扫描与规范整改

8.1 扫描工具

本项目使用 VS Code 作为开发环境,通过 阿里巴巴官方 P3C-PMD 规则集 结合 PMD 插件 进行静态代码扫描。P3C 是《阿里巴巴 Java 开发手册》的落地实现,涵盖命名风格、常量定义、OOP 规约、集合处理、并发处理、异常处理等代码规范。

8.2 扫描结果统计

问题等级 问题类型 数量 整改状态
Blocker(阻断) 类缺少 Javadoc 注释 3 ✅ 已修复
Critical(严重) 魔法值未定义为常量 8 ✅ 已修复
Critical(严重) 异常被吞没(未抛出或记录) 2 ✅ 已修复
Major(一般) 变量名未遵循驼峰命名 5 ✅ 已修复
Major(一般) 未使用泛型 4 ✅ 已修复
Major(一般) 方法缺少注释 6 ✅ 已修复

8.3 典型问题整改示例

屏幕截图 2026-06-22 124848
屏幕截图 2026-06-22 212820

示例1:魔法值问题(Critical)

整改前:

if (status == 1) {
// 通过审核
}

整改后:

java
private static final int STATUS_APPROVED = 1;
if (status == STATUS_APPROVED) {
// 通过审核
}

示例2:类缺少注释(Blocker)

整改前:

java
public class JDBCUtil {
// ...
}
整改后:

java
/**

  • 数据库连接工具类
  • 负责获取 MySQL 数据库连接和释放资源
  • @author XXX
    */
    public class JDBCUtil {
    // ...
    }

示例3:异常被吞没(Critical)

整改前:

java
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
整改后:

java
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
logger.error("数据库连接失败", e);
throw new RuntimeException("数据库连接失败", e);
}


8.4 整改总结

本次共扫描出多处代码规范问题,已全部修复并重新验证。通过本次静态代码扫描,团队深入理解了阿里巴巴 Java 开发规范,代码可读性和可维护性显著提升。

九、课程设计感想

孙昱晓(组长)

本次课程设计我主要负责论坛系统的帖子模块、回复模块和管理员模块开发,并独立完成数据库设计。帖子模块实现了发布、分页列表、详情搜索及我的帖子功能;回复模块发表后自动更新帖子回复数,保证数据一致性;管理员模块基于角色控制权限,实现审核置顶删除、用户禁用启用、板块动态管理等后台功能。开发中最大难点是中文乱码问题,通过数据库连接指定UTF-8编码、统一页面编码、输出时转换三步解决,加深了对字符编码的理解。项目让我从零到一完成完整Java Web应用开发,对MVC分层架构、DAO模式有了深入认识,为今后学习工作打下坚实基础。

张嘉怡(组员)

我主要负责校园论坛系统的前端页面模块,包括论坛首页、登录注册页、发帖页、帖子详情页、个人中心页面以及管理后台页面的样式美化。通过修改 JSP 页面和 common.css 样式文件,统一了导航栏、按钮、表格和帖子列表等页面效果,使系统界面更加清晰美观。

魏雨馨(组员)

在本次课程设计中,我主要负责论坛系统的用户模块、资源模块和活跃度统计的开发,搭档完成了用户模块的注册登录、活跃度统计的周月榜排名以及资源上传下载功能,使系统功能更加完整。用户模块保障了账号安全,活跃度统计有效激励了用户参与,资源上传下载为论坛提供了资源共享能力。通过本次项目实践,我深入理解了MVC分层架构的设计思想,掌握了DAO模式下的数据库访问方法,学会了Servlet和JSP的协同工作方式。项目过程中遇到的问题和解决方案都让我积累了宝贵的开发经验,为今后的学习工作打下坚实基础。

十、使用技术说明

技术 是否使用 备注
数据库 MySQL 8.0
GUI/WEB JSP + Servlet
DAO或MVC DAO 模式访问数据库
使用Git进行代码管理 Gitee 仓库
文件上传下载 Servlet 实现
静态代码扫描 阿里巴巴 P3C-PMD 规则集
数据库连接池 Druid
JavaScript/Ajax 异步交互
JSTL/EL JSP 表达式和标签
多线程 未使用
网络Socket 未使用

附:AI使用声明

本项目中部分技术难点(如 Filter 权限拦截配置、UNION ALL 多表查询优化、文件上传编码处理等)参考了 AI 辅助工具提供的解决方案,所有代码均已手动调试、理解并整合到项目中。


博客撰写日期:2026年6月26

posted @ 2026-06-27 16:17  论坛forum  阅读(24)  评论(0)    收藏  举报