基于Jsp的struts框架的校园BBS论坛系统
1、绪论
这次的实训项目是开发一个校园论坛系统,而开发校园论坛系统的目的是提供一个供我校学生交流的平台,为我校学生提供交流经验、探讨问题的社区。
2、需求分析
校园论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法。此外,为了记录主题的发表者和主题的回复者信息,系统还需要提供用户注册和登录的功能。只有注册的用户登录后才能够发表和回复主题,浏览者(游客)只能浏览主题信息。根据用户的需求及以上的分析,校园论坛需要具备前台功能和后台功能。
对于一个用户,使用论坛进行交流时,首先要注册一个 账户,然后登录后才能进行对帖子的回复,如果不登录,就只能查看帖子而不能进行回复和发表帖子。用户使用论坛系统的需求是发表某一个主题相关的帖子,但用户不可以删除发表的的帖子和评论,目的是为了维持论坛的秩序,一旦用户发表违规内容,管理员将会对其删除用户操作。对于论坛管理人员来说,需要完成对用户发表的帖子的管理,包括:设置精华帖、置顶 帖子、删除帖子等操作。
开发校园论坛系统的目的是提供一个供我校学生交流的平台,为我校学生提供交流经验、探讨问题的社区。因此, 校园论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法。此外,为了记录主题的发表者和主题的回复者信息,系统还需要提供用户注册和登录的功能。只有注册的用户登录后才能够发表和回复主题,浏览者(游客)只能浏览主题信息。根据用户的需求及以上的分析, 校园论坛需要具备前台功能和后台功能。
系统前台功能 :显示用户发表的帖子,查看帖子的内容、发表对帖子的回复、发表对回复的回复、显示用户的头像、用户信息的显示、用户新信息的提醒。
系统后台功能 :进入后台、帖子管理、用户管理、添加删除用户、系统设置、退出系统、返回首页。
3、设计
为了方便校内同学的交流,我们决定要做这么一个校园论坛,而对于论坛这样的数据流量特别大的网络管理系统,必须要满足使用方便、操作灵活等设计需求。所以本系统在设计时应满足以下几个目标:
-
临时用户进入,可浏览帖子但不可发帖
-
一个版面能显示所有的帖子
-
具有登录模块,有用户的个人信息
-
用户随时都可以查看自己发表的帖子
-
管理员权限可删除任意帖子,具有最大权限的管理功能
-
对用户输入的数据,系统进行严格的数据检验,尽可能 排除人为的错误
-
系统最大限度地实现了易维护性和易操作性
-
系统运行稳定安全可靠
3.1 业务功能分析
功能模块图
E-R图
论坛系统前台流程图
论坛后台管理流程图
论坛系统基本用例图
管理员操作删除帖子用例时序图
3.2 数据库搭建
3.2.1 数据库设计
用户表(t_user)
字段名称 | 类型 | 约束 | 描述 |
---|---|---|---|
id | Int(11) | NOT NULL PRIMARY KEY | 录入顺序Id |
Varchar(20) | DEFAULT NULL | 邮箱 | |
face | Varchar(255) | DEFAULT NULL | 头像 |
mobile | Varchar(20) | DEFAULT NULL | 电话 |
nickName | Varchar(20) | NOT NULL | 账户名 |
password | Varchar(20) | NOT NULL | 密码 |
regTime | Datetime(0) | DEFAULT NULL | 注册时间 |
sex | Varchar(10) | DEFAULT NULL | 性别 |
trueName | Varchar(20) | DEFAULT NULL | 真实名字 |
type | Int(11) | NOT NULL | 账户类型 |
帖子表(t_topic)
字段名称 | 类型 | 约束 | 描述 |
---|---|---|---|
id | Int(11) | NOT NULL PRIMARY KEY | 帖子ID |
content | Text(0) | DEFAULT NULL | 主要内容 |
modifyTime | Datetime(0) | DEFAULT NULL | 发贴时间 |
publishTime | Datetime(0) | DEFAULT NULL | 最近回复时间 |
title | Varchar(50) | DEFAULT NULL | 标题 |
sectionId | Int(11) | DEFAULT NULL | 版块id |
userId | Int(11) | DEFAULT NULL | 用户id |
good | Int(11) | NOT NULL | 是否精华 |
top | Int(11) | NOT NULL | 是否置顶 |
小版块表(t_section)
字段名称 | 类型 | 约束 | 描述 |
---|---|---|---|
id | Int(11) | NOT NULL PRIMARY KEY | 小版块id |
name | Varchar(50) | DEFAULT NULL | 小版块名称 |
masterId | Int(11) | DEFAULT NULL | 版主id |
zoneId | Int(11) | DEFAULT NULL | 所属大版块id |
logo | Varchar(255) | DEFAULT NULL | Logo |
大版块表(t_zone)
字段名称 | 类型 | 约束 | 描述 |
---|---|---|---|
id | Int(11) | NOT NULL PRIMARY KEY | 大版块ID |
name | Varchar(50) | NOT NULL | 大版块名称 |
description | Varchar(200) | DEFAULT NULL | 版块描述 |
评论信息表(t_reply)
字段名称 | 类型 | 约束 | 描述 |
---|---|---|---|
id | Int(11) | NOT NULL PRIMARY KEY | 评论信息id |
modifyTime | Datetime(0) | NOT NULL | 发帖时间 |
publishTime | Datetime(0) | DEFAULT NULL | 最近回复时间 |
topicId | Int(11) | DEFAULT NULL | 帖子ID |
userId | Int(11) | DEFAULT NULT | 用户ID |
content | Text(0) | DEFAULT NULT | 帖子内容 |
title | Varchar(100) | DEFAULT NULT | 帖子标题 |
3.2.2 数据库实现
用户表
sql
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`face` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`mobile` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`nickName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`password` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`regTime` datetime NULL DEFAULT NULL,
`sex` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`trueName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`type` int(11) NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 43 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
评论信息表
sql
DROP TABLE IF EXISTS `t_reply`;
CREATE TABLE `t_reply` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`modifyTime` datetime NULL DEFAULT NULL,
`publishTime` datetime NULL DEFAULT NULL,
`topicId` int(11) NULL DEFAULT NULL,
`userId` int(11) NULL DEFAULT NULL,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
`title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `FK_1undp9lie20lt1d4hspci5qj6`(`topicId`) USING BTREE,
INDEX `FK_bcwob7cyou0ovxk8qjo62b18b`(`userId`) USING BTREE,
CONSTRAINT `FK_1undp9lie20lt1d4hspci5qj6` FOREIGN KEY (`topicId`) REFERENCES `t_topic` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT `FK_bcwob7cyou0ovxk8qjo62b18b` FOREIGN KEY (`userId`) REFERENCES `t_user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 52 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
小版块表
sql
DROP TABLE IF EXISTS `t_section`;
CREATE TABLE `t_section` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`masterId` int(11) NULL DEFAULT NULL,
`zoneId` int(11) NULL DEFAULT NULL,
`logo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `FK_7mwn2g1iyo47m5jkx36bqp5j4`(`masterId`) USING BTREE,
INDEX `FK_9xsyefu9pvk24whfn7tc5xi1f`(`zoneId`) USING BTREE,
CONSTRAINT `FK_7mwn2g1iyo47m5jkx36bqp5j4` FOREIGN KEY (`masterId`) REFERENCES `t_user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT `FK_9xsyefu9pvk24whfn7tc5xi1f` FOREIGN KEY (`zoneId`) REFERENCES `t_zone` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 30 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
帖子表
sql
DROP TABLE IF EXISTS `t_topic`;
CREATE TABLE `t_topic` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
`modifyTime` datetime NULL DEFAULT NULL,
`publishTime` datetime NULL DEFAULT NULL,
`title` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`sectionId` int(11) NULL DEFAULT NULL,
`userId` int(11) NULL DEFAULT NULL,
`good` int(11) NOT NULL,
`top` int(11) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `FK_c3cdrgmbpi1ducxxgwuhh7wxv`(`sectionId`) USING BTREE,
INDEX `FK_4ptwcmiyvt0jjt1qse4wmywoa`(`userId`) USING BTREE,
CONSTRAINT `FK_4ptwcmiyvt0jjt1qse4wmywoa` FOREIGN KEY (`userId`) REFERENCES `t_user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT `FK_c3cdrgmbpi1ducxxgwuhh7wxv` FOREIGN KEY (`sectionId`) REFERENCES `t_section` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 52 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
大版块表
sql
DROP TABLE IF EXISTS `t_zone`;
CREATE TABLE `t_zone` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`description` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
4、编码
4.1 后台功能实现
4.1.1 上传本地文件方法
4.1.2 帖子评论操作的Service层
4.1.3 换页model类的创建
4.1.4 发表帖子的列表化操作
4.1.5 将日期信息转为字符串并存入数据库
4.1.6 采用session的方法对账户表单信息进行验证
4.1.7 数据库操作
4.1.8 配置数据库信息
4.2 前端页面实现
4.2.1 用户登录页面实现
4.2.2 管理员登录页面实现
4.2.3 主页面(采用boostrap框架)
4.2.4 管理员管理页面
5、测试
5.1 登陆测试
5.2 前台界面测试
5.2.1 评论帖子
5.2.2 主页
5.2.3 注册页面测试
5.2.4 修改个人资料页面测试
5.2.5 管理员登录页面测试
5.2.6 管理员操作测试
5.2.7 用户信息管理操作
5.3 帖子管理测试
5.4 主页底部导航栏测试
6、总结
作为这一次实训的学习,我在其中的收获发感觉颇丰。因为在此之前直接接触的基于jsp的mvc模式架构的开发,然后设计过程之中,表之间的联系,数据的架构的过程比较较少,缺乏知识的完备性和完善性并没有使用过任何的框架。而恰好借助这段时间的学习,我开始接触和了解具体怎么在一个框架去实现项目的功能。这次的项目是基于在网上找到的一个基于ASP.NET的论坛系统,和在B站看了黑马程序员的视频,学习如何开发一个完整的web工程,这个项目采用了其视频中的管理员界面设计和基本功能的设计,采用boostap框架技术和mvc模式开发这个校园论坛BBS系统,其中在action和Servicer功能层开发花费了比较多的精力。
在这个学习的中间,我觉得其中里面比较重点的知识点有:分页代码查询,多条件查询,多表查询,日期信息转化字符串,登陆页面验证码验证,普通用户具有发帖,评论等功能。版主具有回帖,发帖,删帖,修改个人信息等功能,管理员可以从左上角后台管理进入,登录,对大板块,小板块进行增加,批量删除。在这次的校园BBS论坛的设计与实现,其中的过程还是又遇到一些不会无法实现的地方,经过自己百度和谷歌,查询一些博客和csdn资料之后得到解决。
参考文献
- 金融论坛网站前台系统设计与实现(电子科技大学·张晓来)
- Struts框架在实现管理信息系统中的应用(国防科学技术大学·贝琦)
- 基于Struts框架开发Web层应用的研究(青岛大学·王斌)
- 学生管理系统的设计与实现(电子科技大学·贾林蓉)
- 基于Hibernate的浙江交通职业技术学院学生档案管理系统(电子科技大学·程伟强)
- 外籍教师聘用管理信息系统的设计与实现(北京邮电大学·张展展)
- 基于MVC模式的通用Web软件系统开发框架设计与实现(电子科技大学·王新)
- 基于Hibernate的浙江交通职业技术学院学生档案管理系统(电子科技大学·程伟强)
- 公司管理中BBS信息系统的设计与实现(电子科技大学·赵正刚)
- 一个通用论坛系统的设计与实现(山东大学·张正)
- Struts框架在实现管理信息系统中的应用(国防科学技术大学·贝琦)
- 基于J2EE技术开发高校BBS论坛(大连海事大学·邓天峰)
- 基于ASP.NET的综合BBS系统设计与实现(电子科技大学·阮东光)
- 基于MVC框架的BBS论坛管理系统的设计与实现(云南大学·徐永彪)
- 基于Java的BBS论坛系统的设计与实现(山东大学·刘广升)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码助手 ,原文地址:https://m.bishedaima.com/yuanma/35207.html