基于JSP的校园论坛BBS网站的设计与实现
1 概述
开发校园论坛系统的目的是提供一个供我校学生交流的平台,为我校学生提供交流经验、探讨问题的社区。因此, 校园论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法。此外,为了记录主题的发表者和主题的回复者信息,系统还需要提供用户注册和登录的功能。只有注册的用户登录后才能够发表和回复主题,浏览者(游客)只能浏览主题信息。根据用户的需求及以上的分析,校园论坛需要具备前台功能和后台功能。
1.1 系统概述
- 网站名称
校园论坛
- 网站功能实现
为用户提供一个注册、发帖、回复、浏览等交流操作功能。
- 用户
在校学生
- 子系统关系图
1.2 系统目标
为了方便校内同学的交流,我们决定要做这么一个校园论坛,而对于论坛这样的数据流量特别大的网络管理系统,必须要满足使用方便、操作灵活等设计需求。所以本系统在设计时应满足以下几个目标:
- 临时用户进入,可浏览帖子但不可发帖
- 一个版面能显示所有的帖子
- 具有登录模块,有用户的个人信息
- 用户随时都可以查看自己发表的帖子
- 有用户的消息的时间及时提醒,主要用于提示哪个用户 回复了自己的主题
- 管理员权限可删除任意帖子,具有最大权限的管理功能
- 对用户输入的数据,系统进行严格的数据检验,尽可能 排除人为的错误
- 系统最大限度地实现了易维护性和易操作性
- 系统运行稳定安全可靠
1.3 文档概述
需求分析报告采用面向对象的方法,在文档中主要采用了用例、流程图等表示方法来描述需求。
1.4 需求概述
1.4.1 用户需求
对于一个用户,使用论坛进行交流时,首先要注册一个 账户,然后登录后才能进行对帖子的回复,如果不登录,就 只能查看帖子而不能进行回复和发表帖子。用户使用论坛系 统的需求是发表某一个主题相关的帖子,用户在发表帖子后, 如果有人进行回复,就要在首页提醒用户有新消息。用户可以删除自己发表的帖子和评论。对于论坛管理人员来说,需要完成对用户发表的帖子的管理,包括:设置精华帖、置顶 帖子、删除帖子等操作。
开发校园论坛系统的目的是提供一个供我校学生交流的平台,为我校学生提供交流经验、探讨问题的社区。因此, 校园论坛系统最基本的功能首先是发表主题,其次是其他人员根据主题发表自己的看法。此外,为了记录主题的发表者和主题的回复者信息,系统还需要提供用户注册和登录的功能。只有注册的用户登录后才能够发表和回复主题,浏览者(游客)只能浏览主题信息。根据用户的需求及以上的分析, 校园论坛需要具备前台功能和后台功能。
- 系统前台功能:显示用户发表的帖子,查看帖子的内容、发表对帖子的回复、发表对回复的回复、显示用户的头像、用户信息的显示、用户新信息的提醒。
- 系统后台功能:进入后台、帖子管理、用户管理、添加删除用户、系统设置、退出系统、返回首页。
1.4.2 系统开发环境需求
1.4.2.1 开发环境
我们一致认为在开发此论坛的时候需要配置以下软件环境:
服务器端 :
- 操作系统:Windows 7及以上
- Web服务器:Tomcat 7.0
- 集成开发环境:Eclipse
- 数据库:MySQL
客户端 :
- 无特别要求
1.4.2.2 使用技术
- 前端:HTML、CSS、JS、BootStrap
- 后端:Java
- 数据库:MySQL
1.4.2.3 用户的特点
- 本网站的最终用户的特点:所有上网用户在无需培训的情况下,按照网站页面提示即可使用网站的相关服务和功能
- 后台管理和维护人员的教育水平和技术专长:本软件的后台管理和维护人员均为我小组开发成员
1.5 功能需求
经过系统性的研究,我们认为整个论坛大概分为 3 个功能模块,分别为:论坛模块、管理员模块和用户模块。
1.5.1 前台功能需求
在论坛前台中,我们作了如下设计:分未登录前和登录后,登录前,用户进入校园论坛的主页面后,可以查看帖子内容、用户注册、用户登录,登录后,用户可以修改个人信息、查看个新消息、修改头像、查看帖子内容、回复帖子。
1.5.2 后台功能需求
管理用户进入后台后,可以进行帖子管理,包括查看帖子、删除帖子、返回论坛首页和退出系统。
1.5.3 系统前台流程图
在系统前台流程中,我们做出了如下设置。首先,我们开始点开界面,是我们的论坛主页,不登录可以以临时用户身份浏览,登陆则可以发帖和评论,没有账号的可以注册。
1.5.4 系统后台流程图
在系统的后台流程中,我们做出了如下设置。首先,我们进入登录界面,使用管理员账号和密码进行登录,在管理员界面,我们可以进行用户信息管理,可以查看、删除用户帖子
1.6 系统用例图
1.7 系统时序图
论坛管理员处理帖子的时序图
用户发帖评论时序图
1.8 系统组件图
1.9 系统E-R图
1.10 系统配置图
2 操作指引
2.1 项目简介
校园论坛所具有的功能包括:用户注册、用户登录、用户信息修改、浏览帖子、发表帖子、收藏帖子、搜索帖子、回复帖子、用户信息管理(查询、增加、删除、修改)。
从整体上可以分为数据层、数据访问层和业务逻辑层。数据层是系统最底层,它用于存储系统的所有数据。数据访问层建立在数据库之上,应用程序通过该层访问数据库。数据访问层一般封装数据库的选择、添加、更新和删除操作,同时还为业务逻辑层服务,所以数据访问层的设计的好坏关系到整个系统的成败。业务逻辑层包括用户登录、用户注册、 发表帖子等业务逻辑,它一般由Web页面实现。
系统操作结构
页面操作结构
2.2 操作介绍
在登录注册界面可以通过登录和注册按钮进行登录和注册操作
登录完就会进入主界面,在主界面上方有“个人信息”,“我的帖子”、“用户管理”等按钮可以进行相应的操作。界面中间是其他用户发的帖子,可以点击进行浏览和恢复等操作。界面的最下方是发帖模块,只用登录用户才可以进行发 帖操作,游客只有浏览帖子的权限。
点击个人信息按钮进入个人信息界面可以修改个人的详细信息。
点击我的帖子进入我的帖子界面可以对自己发的帖子进行删除和查看操作。
在首页点击其他用户的帖子可以进入帖子的完整内容进行浏览,还可以在最下方的回复模块进行回复。
如果你是以管理员的身份登录,你还可以进入用户管理模块,进行删除帖子的操作。
3 业务说明
3.1 业务简介
本软件系统旨在通过网络论坛,让在校大学生快速地进行交流更为便捷。使得大学生的交流环境和校方教育及管理人员获得广大学生声音更加方便也更为人性化。校园论坛是面向各大高校师生的一个信息交流平台,建立一个基于师生沟通为目的,功能简洁,方便实用和管理的论坛系统显得越来越必要。为达成这一目标,并将大学学习期间所学的数据库设计与实现、网页设计、面向对象程序设计、Web 应用开发等知识综合运用,融会贯通,特开发此项目。
3.2 业务场景
触发事件 | 用户注册 |
---|---|
执行者 | 用户 |
工作内容 | 1.进行用户的信息注册 |
触发事件 | 用户登录 |
---|---|
执行者 | 用户 |
工作内容 | 1.用户使用已注册的账号和密码进行登录 |
触发事件 | 查看已发布的帖子 |
---|---|
执行者 | 用户/游客 |
工作内容 | 1. 对已发布的帖子进行查看 |
触发事件 | 发帖 |
---|---|
执行者 | 用户 |
工作内容 | 1.用户进行帖子发布 |
触发事件 | 回帖 |
---|---|
执行者 | 用户 |
工作内容 | 1.用户对已发布的帖子内容进行回复 |
触发事件 | 论坛出现违规帖子 |
---|---|
执行者 | 网站管理员 |
工作内容 | 1.对违规帖子进行查看,评估 2.对存在违规现象的帖子进行删除,当情况严重时还需要对违规用户进行禁言或封号处理 |
4 数据库
数据流图,简称 DFD,是 SA 方法中用于表示系统逻辑模型的一种工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它 是一种功能模型。
4.1 顶层数据流图
4.2 0 层数据流图
4.3 具体数据流图
4.3.1 登录系统
4.3.2 注册系统
4.3.3 发表主题
4.3.4 回复主题
4.3.5 论坛管理
4.4 数据字典
4.4.1 数据流
4.4.2 数据项
4.5 E-R图
E-R 图即实体-联系图(Entity Relationship Diagram),是指提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型 。 E-R方法是 “实体-联系方法 ”(Entity-Relationship Approach)的简称,它是描述现实世界概念结构模型的有效方法。
4.6 数据库设计
4.6.1 数据库分析
数据库的设计,在程序的开发中起着至关重要的作用,它往往决定了在后面的开发中进行怎样的程序编码。一个合理、有限的数据库设计可降低程序的复杂性,使程序开发的过程更为容易。
本系统是一个中型的用户交流的网站,考虑到用户访问量以及网络连接,本系统采用MySQL 作为数据库。
MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 的 SQL 语言是用于访问数据库的最常用标准化语言。
4.6.2 数据库的逻辑设计
根据系统需求,我们就可以创建系统所需要的数据库表了。本系统包含 3 个表,下面是这些表的结构。
user_info 表 结构如表所示:
字段名 | 数据类型 | 字段长度 | 是否主键 | 是否为空 | 备注 |
---|---|---|---|---|---|
user_id | int | 15 | 是 | 否 | 用户 id |
user_name | varchar | 50 | 否 | 否 | 用户名 |
user_password | varchar | 50 | 否 | 否 | 密码 |
user_sex | varchar | 2 | 否 | 否 | 性别 |
user_face | varchar | 255 | 否 | 否 | 头像 |
user_phone | varchar | 255 | 否 | 否 | 联系电话 |
user_email | varchar | 200 | 否 | 否 | 电子邮箱 |
user_from | varchar | 200 | 否 | 否 | 来自何处 |
isAdmin | int | 2 | 否 | 是 | 是否为管理员 |
forum_info 表 结构如表所示:
字段名 | 数据类型 | 字段长度 | 是否主键 | 是否为空 | 备注 |
---|---|---|---|---|---|
Fid | int | 10 | 是 | 否 | 发帖 id |
Title | varchar | 255 | 否 | 否 | 帖子标题 |
content | varchar | 255 | 否 | 否 | 帖子内容 |
create_time | datetime | 否 | 否 | 发帖时间 | |
user_id | int | 11 | 否 | 否 | 用户 id |
reply_info 表 结构如表所示:
字段名 | 数据类型 | 字段长度 | 是否主键 | 是否为空 | 备注 |
---|---|---|---|---|---|
reply_id | int | 10 | 是 | 否 | 回帖 id |
reply_content | varchar | 255 | 否 | 否 | 回帖内容 |
reply_time | datetime | 否 | 否 | 回帖时间 | |
user_id | int | 11 | 否 | 否 | 用户 id |
fid | int | 11 | 否 | 否 | 发帖 id |
4.6.3 SQL 语句设计(建表语句 )
用户信息表(user_info)
``sql
CREATE TABLE
user_info
(
user_id
int(15) NOT NULL,
user_name
varchar(50) NOT NULL,
user_password
varchar(50) NOT NULL,
user_sex
varchar(2) NOT NULL,
user_face` varchar(255) NOT NULL,
user_phone
varchar(255) NOT NULL,
user_email
varchar(200) NOT NULL,
user_from
varchar(200) NOT NULL,
isAdmin
int(2) DEFAULT NULL, PRIMARY KEY (
user_id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
```
主题信息表(forum_info)
sql
CREATE TABLE `forum_info` (
`fid` int(10) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`content` varchar(255) NOT NULL,
`create_time` datetime NOT NULL,
`user_id` int(11) NOT NULL, PRIMARY KEY (`fid`)
) ENGINE=InnoDB AUTO_INCREMENT=55 DEFAULT CHARSET=utf8
回帖信息表(reply_info)
``sql
CREATE TABLE
reply_info
(
reply_id
int(10) NOT NULL AUTO_INCREMENT,
reply_content
varchar(255) NOT NULL,
reply_time
datetime NOT NULL,
user_id` int(11) NOT NULL,
fid
int(11) NOT NULL, PRIMARY KEY (
reply_id
)
) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8
```
4.7 MD5 算法加密
实现代码
java
public class MD5 {
public static String generateCode(String str)
throws Exception{
MessageDigest md5=MessageDigest.getInstance("MD5");
byte[] srcBytes=str.getBytes(); md5.update(srcBytes);
byte[] resultBytes=md5.digest(); String result=new String(resultBytes); return result;
}
}
实现结果
5 系统测试
- 测试环境
操作系统:windows10
浏览器:Google Chrome
5.1 测试内容
用户注册 | 输入学号、密码及个人信息,并且通过验证码认证后,完成注册 | 是 |
---|---|---|
用户登录 | 输入学号及密码完成登录 | 是 |
浏览帖子 | 不论是否登录,都可以正常浏览已有的帖子 | 是 |
发帖 | 只有登录后,方可发帖 | 是 |
回复 | 只有登录后,方可回复 | 是 |
个人信息 | 查看个人信息(头像、学号、姓名、性别 联系电话、电子邮箱、来自哪里) | 是 |
修改个人信息 | 对个人信息(头像、学号、姓名、性别、联系电话、电子邮箱、来自哪里)进行修改 | 是 |
退出登录 | 退出已登录状态 | 是 |
5.2 功能截图
校园论坛主页
在校园论坛主页,可作为游客身份浏览帖子,但只有注册、 登录之后,方可回复跟帖。主页提供直观的注册、登录按钮。
用户注册
输入学号、用户名、密码,以及其它个人信息之后,即可完成注册。并且为了网站安全,用户需要通过验证码验证。
用户登录
输入学号、密码即可完成登录。
若勾选“记住密码”,会自动填充学号及密码,方便用户快捷登录校园论坛。
查看帖子
登录之后,进入“查看帖子”页面,可浏览已发布的帖子。右上角提供“个人信息”、“ 我的帖子”、“退出论坛”三个按钮。
发帖
“查看帖子”页面底部,输入标题及内容,点击”发表”,即可发布自己的帖子。
阅读、回复帖子
点击帖子的标题,即可阅读帖子详情,可以回复跟帖。
个人信息
点击右上角的“个人信息”按钮,即可查看个人信息,包 括头像、学号、姓名、性别、联系电话、电子邮箱,及来自哪里。
修改个人信息
“个人信息”页面,点击“修改资料”按钮,即可进入“修改个人信息”页面。可对个人信息进行修改。
退出登录
点击右上角的“退出论坛”按钮,即退出登录状态,回到论坛主页。
参考文献
- 基于J2EE的企业论坛系统的设计与实现(电子科技大学·万廉)
- 用JSP技术开发基于WEB的房地产网络管理信息系统(大连理工大学·齐鲲鹏)
- 基于J2EE的远程网络教育系统研究与实现(电子科技大学·陈南荪)
- 基于ASP.NET的在线教学论坛设计(河北大学·周希思)
- 基于JSP的校园管理网站系统的设计与开发(电子科技大学·张志红)
- 基于JSP的学生就业信息管理系统设计与实现(吉林大学·马骁)
- 基于SaaS的BBS系统的设计与实现(厦门大学·袁赟)
- 基于Web技术的校园论坛设计与实现(内蒙古科技大学·李鹏飞)
- 基于J2EE的手机综合网站的设计与实现(吉林大学·宋微)
- 就业网论坛管理系统的设计与实现(电子科技大学·王鹏)
- 公司管理中BBS信息系统的设计与实现(电子科技大学·赵正刚)
- 基于J2EE的远程网络教育系统研究与实现(电子科技大学·陈南荪)
- 基于JSP的辽宁大学毕业设计指导系统的设计与实现(吉林大学·王一凡)
- 基于JSP的辽宁大学毕业设计指导系统的设计与实现(吉林大学·王一凡)
- 大学生学习交流论坛的设计与实现(电子科技大学·裴博杰)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码海岸 ,原文地址:https://bishedaima.com/yuanma/35432.html