论坛管理系统
项目介绍
论坛管理系统是一个基于Java Web技术开发的简单论坛系统,提供用户注册、登录、发帖、回复等基本功能,同时支持管理员对用户、分类、帖子和回复进行管理。
功能特性
用户管理
- 用户注册:新用户可以通过注册页面创建账号
- 用户登录:已注册用户可以通过用户名和密码登录系统
- 个人资料:用户可以查看和修改个人资料
- 用户列表:管理员可以查看所有用户信息
- 用户编辑:管理员可以编辑用户信息,包括修改角色
分类管理
- 分类列表:查看所有帖子分类
- 添加分类:管理员可以添加新的帖子分类
- 编辑分类:管理员可以编辑分类信息
- 删除分类:管理员可以删除不需要的分类
帖子管理
- 帖子列表:查看所有帖子
- 发布帖子:登录用户可以发布新帖子
- 帖子详情:查看帖子内容和回复
- 编辑帖子:作者和管理员可以编辑帖子
- 删除帖子:作者和管理员可以删除帖子
- 按分类查看:可以按分类查看帖子
- 我的帖子:用户可以查看自己发布的帖子
回复管理
- 回复列表:查看帖子的所有回复
- 添加回复:登录用户可以回复帖子
- 编辑回复:作者和管理员可以编辑回复
- 删除回复:作者和管理员可以删除回复
- 我的回复:用户可以查看自己发布的回复
技术架构
前端技术
- JSP (JavaServer Pages)
- HTML/CSS
- JavaScript
- jQuery
- Bootstrap 3
后端技术
- Java
- Servlet
- JDBC
- MySQL
项目结构
luntan/
├── WebContent/ # Web内容目录
│ ├── include/ # 公共包含文件
│ │ ├── header.jsp # 页面头部
│ │ └── footer.jsp # 页面底部
│ ├── index.jsp # 首页
│ ├── user_login.jsp # 用户登录页
│ ├── user_register.jsp # 用户注册页
│ ├── user_profile.jsp # 用户资料页
│ ├── user_list.jsp # 用户列表页
│ ├── user_edit.jsp # 用户编辑页
│ ├── category_list.jsp # 分类列表页
│ ├── category_add.jsp # 添加分类页
│ ├── category_edit.jsp # 编辑分类页
│ ├── post_list.jsp # 帖子列表页
│ ├── post_add.jsp # 发布帖子页
│ ├── post_view.jsp # 查看帖子页
│ ├── post_edit.jsp # 编辑帖子页
│ ├── reply_edit.jsp # 编辑回复页
│ └── WEB-INF/ # WEB-INF目录
│ └── web.xml # Web应用配置文件
├── src/ # 源代码目录
│ ├── com/luntan/ # 主包
│ │ ├── entity/ # 实体类
│ │ │ ├── User.java # 用户实体
│ │ │ ├── Category.java # 分类实体
│ │ │ ├── Post.java # 帖子实体
│ │ │ └── Reply.java # 回复实体
│ │ ├── dao/ # 数据访问层
│ │ │ ├── UserDao.java # 用户DAO接口
│ │ │ ├── CategoryDao.java # 分类DAO接口
│ │ │ ├── PostDao.java # 帖子DAO接口
│ │ │ ├── ReplyDao.java # 回复DAO接口
│ │ │ └── impl/ # DAO实现类
│ │ ├── service/ # 业务逻辑层
│ │ │ ├── UserService.java # 用户服务接口
│ │ │ ├── CategoryService.java # 分类服务接口
│ │ │ ├── PostService.java # 帖子服务接口
│ │ │ ├── ReplyService.java # 回复服务接口
│ │ │ └── impl/ # 服务实现类
│ │ ├── servlet/ # Servlet控制层
│ │ │ ├── UserServlet.java # 用户Servlet
│ │ │ ├── CategoryServlet.java # 分类Servlet
│ │ │ ├── PostServlet.java # 帖子Servlet
│ │ │ └── ReplyServlet.java # 回复Servlet
│ │ ├── filter/ # 过滤器
│ │ │ ├── EncodingFilter.java # 编码过滤器
│ │ │ ├── LoginFilter.java # 登录过滤器
│ │ │ └── AdminFilter.java # 管理员过滤器
│ │ └── util/ # 工具类
│ │ ├── DBUtil.java # 数据库工具类
│ │ ├── DateUtil.java # 日期工具类
│ │ ├── StringUtil.java # 字符串工具类
│ │ └── PageUtil.java # 分页工具类
│ └── db.properties # 数据库配置文件
└── luntan.sql # 数据库脚本
数据库设计
用户表 (user)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | int | 主键,自增 |
| username | varchar(50) | 用户名,唯一 |
| password | varchar(50) | 密码 |
| varchar(100) | 邮箱 | |
| phone | varchar(20) | 电话 |
| role | varchar(10) | 角色:admin-管理员,user-普通用户 |
| create_time | datetime | 创建时间 |
| update_time | datetime | 更新时间 |
分类表 (category)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | int | 主键,自增 |
| name | varchar(50) | 分类名称 |
| description | varchar(200) | 分类描述 |
| create_time | datetime | 创建时间 |
| update_time | datetime | 更新时间 |
帖子表 (post)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | int | 主键,自增 |
| title | varchar(100) | 帖子标题 |
| content | text | 帖子内容 |
| user_id | int | 发布用户ID,外键 |
| category_id | int | 分类ID,外键 |
| view_count | int | 浏览次数 |
| reply_count | int | 回复次数 |
| create_time | datetime | 创建时间 |
| update_time | datetime | 更新时间 |
回复表 (reply)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | int | 主键,自增 |
| content | text | 回复内容 |
| post_id | int | 帖子ID,外键 |
| user_id | int | 回复用户ID,外键 |
| create_time | datetime | 创建时间 |
| update_time | datetime | 更新时间 |
安装部署
环境要求
- JDK 1.8+
- Tomcat 8.5+
- MySQL 5.7+
- Eclipse/IDEA (开发环境)
部署步骤
-
创建数据库
- 使用MySQL客户端或管理工具执行
luntan.sql脚本创建数据库和表
- 使用MySQL客户端或管理工具执行
-
配置数据库连接
- 修改
src/db.properties文件中的数据库连接信息
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/luntan?useUnicode=true&characterEncoding=utf8&useSSL=false username=root password=root - 修改
-
添加依赖库
- 在项目的
WebContent/WEB-INF/lib目录下添加以下JAR包:- servlet-api.jar
- jsp-api.jar
- jstl.jar
- standard.jar
- mysql-connector-java.jar
- 在项目的
-
部署到Tomcat
- 将项目导出为WAR文件
- 将WAR文件放入Tomcat的webapps目录
- 启动Tomcat服务器
-
访问系统
- 打开浏览器,访问
http://localhost:8080/luntan
- 打开浏览器,访问
使用说明
普通用户
- 注册账号:点击首页的"立即注册"按钮,填写注册信息
- 登录系统:使用注册的用户名和密码登录
- 浏览帖子:点击"浏览帖子"查看所有帖子
- 发布帖子:登录后点击"发布帖子"按钮
- 回复帖子:在帖子详情页面添加回复
- 个人中心:查看和修改个人资料,管理自己的帖子和回复
管理员
- 使用管理员账号登录(默认管理员账号:admin/admin)
- 用户管理:查看、编辑和删除用户
- 分类管理:添加、编辑和删除分类
- 帖子管理:查看、编辑和删除所有帖子
- 回复管理:查看、编辑和删除所有回复