此文章记录了本人毕业设计的设计与实现过程,欢迎大家交流讨论。
自互联网诞生与发展几十年来,无处不在的网络渗透、影响着我们生活的方方面面,对我们的衣、食、住、行产生着持久而深远的影响,其中网络论坛扮演着至关重要的角色。经过几十年网络技术和计算机技术的发展,原有的电子公告板系统(Bulletin Board System)已经从一个功能简单的网站演变成了各领域中各式各样的论坛系统,大至重要决策,小至今晚吃什么,种类繁多的论坛时时刻刻影响着我们的生活。 本文旨在设计并实现一个面向大学生的校园论坛,主要用于学生间的学习交流、提问解答、交友互动、二手交易等。在校的学生可以在论坛上交流学习心得、提出疑问、帮助他人、寻找同好、发布交易信息,管理员则可以对注册用户及其言论进行管理。本系统旨在为目标用户提供一个功能全面、界面美观、方便使用、容易管理的校园论坛平台。 系统架构方面,本校园论坛系统采用了较为经典的Browser/Server架构与SSM(SpringMVC+Spring+Mybatis)框架,这一架构经过多年的探索与实践,具有较高的稳定性与可复用性。前端则选择相比于纯HTML更加灵活便捷的JavaServer Pages,开发框架包括Bootstrap等。 本校园论坛系统的功能主要分为普通用户和管理员两个部分,涵盖了在校学生对于校园论坛的基本需求,包括普通用户对帖子和个人信息的一系列操作以及管理员对管理对用户账号、帖子、各个版块的管理。 本文主要对该校园论坛系统的系统整体架构、数据库设计、前端界面布局与设计、后端服务器逻辑流程的设计与实现进行了详细的描述,并对系统的所有功能进行了测试与分析。
关键词:校园论坛;Browser/Server;SpringMVC;Spring;Mybatis;JSP;MySQL
Abstract
Since the birth and development of the Internet for decades, the Internet had its penetration and influence on every aspect of our life, which has a lasting and far-reaching impact to our clothing, food, housing, transportation. The network forum plays a vital role. After many years of development of network and computer science, the Bulletin Board System has developed from a simple website to a forum system for a wide variety of fields, from important decisions to what to eat tonight. A wide variety of forums affect our lives every moment. The purpose of this paper is to design and implement a campus forum for college students, mainly used for learning between students, making questions and answers, friends interacting, sending second-hand transactions information and so on. On this forum, students can exchange learning experiences, ask questions, help others, look for friends, and post trading information, while administrators can manage registered users and their opinions. This system aims to provide the target users with a campus forum platform having comprehensive function, beautiful interface and convenient to use and manage. For system architecture, the campus forum system uses the classic Browser/Server architecture and SSM framework. This architecture, after years of exploration and practice, has a high stability and reusability. The front end uses JavaServer Pages, which is more flexible and convenient than HTML. The development framework includes Bootstrap, etc. This forum system takes IDEA as the development IDE, Tomcat as the Web application server, database for MYSQL, operating system for Windows10. The functions of this campus forum system have two fields: normal users and administrators, covering the basic needs of students for the campus forum, including ordinary users Posting, modifying, collecting, editing personal information functions, and administrators to manage user accounts, management posts, management of each section of the function. This paper mainly describes the overall system architecture, database design, interface layout design, server logic design and the detail of building this campus forum system. All the functions of the system were tested and analyzed at last.
Key words: forum;Browser/Server;SpringMVC;Spring;Mybatis;JSP;MySQL
自互联网诞生与发展几十年来,最开始的电子公告板网页已经逐步发展为了各种功能全面的在线论坛[1]。各种大型论坛比如知乎、百度贴吧等,在日常生活中影响着人们衣、食、住、行等各个方面,这些论坛能够承载较大的访问量,无论是处理能力还是兼容性都十分优秀,但国内这些论坛大多功能杂乱。国外论坛主要有有Mylot,Facebook、ICQ等大型论坛,这些论坛基本上都有较强的针对性,某一个论坛的主要内容基本只涉及某一个领域或一种话题。
随着时代的发展,学生们,尤其是大学生群体的知识获取途径已经不仅限于书本、期刊和教师,发达的网络使得学生群体内部的交流成为了学习新知识的另一大途径[2]。在学习之余,学生们还有聊天交友、二手交易等需求,但众多微信群、QQ群使得这些信息相当分散[3]。本校园论坛主要用于学生间的学习交流、提问解答等,在校的学生可以在论坛上交流学习心得、提出疑问、帮助他人,管理员则可以对注册用户及其言论进行管理;同时,本论坛也是在校学生寻找同好、发布交易信息的平台。本系统旨在为在校师生提供一个实用性高、功能全面、界面美观、方便使用、容易管理的校园论坛平台。在初入大学时,同学们经常会遇到各种各样的问题,但苦于没有办法高效地向学长学姐请教,从而走了许多弯路,而这种场所、方式不固定的非正式学习往往在个体的学习中占了很大比重[4]。这也是作者选择本课题研究的初衷,希望初入大学的同学们能及时获取想要的信息、产生的问题及时得到解答,能够在学习、生活上快速适应大学生活,而高年级学生能通过分享自己的经验帮助他人。
同时,校园论坛是高校校园文化、精神、教学水平、软硬件实力等综合素质的表现[5],校内师生在论坛上营造的学习生活氛围也会反作用于校内学生,影响他们思维方式、价值取向等[6]。所以,一个管理良好、内容优质的校园论坛对塑造高校形象、培养高校人才有着十分重要的作用。
该校园论坛为用户提供了一个在线交流平台,用户可以在论坛上提出自己遇到的问题寻求解答,或是查看往届同学的提问或攻略,同时,高年级学生可以借此平台向其他同学传授经验、互相交流。本系统打破了不同班级、不同学院的地域限制,让同学们能够在信息共享中更好地体验大学生活。
(1)国外研究现状
1978年,Ward Christensen和Randy Suess发布了世界上第一个电子公告板系统, 当时的电子公告板主要用于人与人之间的消息交互、信息传递,其系统的主要功能包括:发布新闻、表达想法、提问与解答、发布交易信息[7]。随着技术的更迭与需求的变化,新闻与交易信息这两个功能逐渐分离,形成了新闻网站和购物网站,而观点交流与问答互动这两个功能则保留了下来,并逐渐演化为了今天的论坛系统。到了1990年前后,大部分的电子公告板系统已经演化为了论坛系统,此时人们对电子公告板系统的理解主要就是论坛[8]。
(2)国内研究现状
中国大陆的第一个BBS论坛成立于20世纪90年代初。由于国内较低的互联网普及率,且电脑价格对大多数人的收入来说偏高,所以每天的访问量极少。后来,随着经济的发展,人们的收入逐渐增加,越来越多的人能够负担得起个人电脑。于是网络论坛开始逐渐进入人们的视野,大家对网络论坛有了更多的了解,此后网络论坛的数量不断增加、功能不断完善,涉及了几乎所有领域,这一现象在20世纪90年代达到最高峰。然而,在此后互联网泡沫的冲击下,绝大部分网络论坛开始逐渐消失,国内论坛经由调整与完善,逐步走向了成熟的阶段,形成了如今常见的用户数量多,信息传播快、信息交互性强的微博、知乎等大型论坛[9]。然而,当下专注于师生校园生活的校园论坛依旧稀少,很多学校存在信息发布、信息交流不畅的情况[10],一部分还存在信息杂乱、过度商业化、缺乏管理等情况[11]。
系统架构方面,主要研究B/S架构、MVC模式框架、SSM框架在构建论坛方面的应用[12],以及ajax技术在前端网页访问服务器方面的应用[13]。功能方面,本校园论坛系统按照软件工程开发流程,根据日常生活学习中同学们对校园论坛的具体需求进行设计开发。首先通过分析用户的具体需求,设计系统的总体框架,然后进行概要设计,构建论坛系统初步框架,随后通过详细设计划分功能模块,细分每一个具体功能,对每一项业务的业务流程进行设计与实现,最后对系统中普通用户和管理员的所有功能进行测试和运行,进一步优化与完善系统。
本校园论坛系统采用Browser/Server架构、MVC设计模式和Spring + SpringMVC + MyBatis框架[14];本系统采用 JSP技术为前端开发的基本技术,并使用了jQuery和Bootstrap等开发工具;服务器选择了免费且性能稳定的Tomcat作为Web应用服务器,版本为9.4,数据库选择MySQL,以IDEA作为开发IDE,以Windows10系统作为开发与运行的系统环境。
本校园论坛系统的系统架构图如图2-1所示。
在这里插入图片描述
图2-1 校园论坛系统架构图
本系统的表示层技术采用java服务器页面(JavaServer Pages)进行页面展示[15],业务逻辑层使用SpringMVC控制服务器逻辑,为了更好地进行数据存储与修改,选择了当下热门的MyBatis [16]。
本系统在业务逻辑层采用Spring控制反转(IoC)的方式[17],而在持久层中,根据配置文件对MySQL的映射,MyBatis可以与数据库交互,再将数据包装后发送回前端浏览器进行展示 [18]。
与传统论坛相似,本的功能包括前台与后台两个部分 [19],用户部分的管理包括用户账号,帖子,评论,收藏等;管理员部分包括版块管理等。
系统总体模块如图2-2所示。
图2-2 系统总体模块图
(1)IDEA的选择与分析
与其他开发工具相比,IDEA有更好的项目管理方式、更高的开发效率、包括JavaScript、java代码、Ajax、JQuery在内的更全面的调试功能。
(2)MySQL的选择与分析
作为一个关系型数据库,MySQL在轻量级小型网站的开发中具有较大优势[20]。与SQL Server相比,MySQL有着更高效率的简单查询,虽然复杂查询时两者效率相近,但在表设计时可以进行针对性设计,从而避免复杂查询;同时,MySQL对计算机的配置要求较低,处理大量数据时也更不容易崩溃;此外,MySQL的可配置性相对较高,而且都是基于文本文件,清晰且便于修改;由于MySQL效率高、体积轻便、成本不高,且提供多种语言API,所以很多中小型网站都采用了MySQL数据库[21]。由于本校园论坛系统在使用中只涵盖某一所学校,属于轻量级系统,出于以上种种考虑,故选择MySQL作为数据库。
2.4.1功能性需求
2.4.1.1注册登陆
用户无需登陆即可登陆系统,但只有登陆后才能对帖子进行操作。注册时需要填写用户名、邮箱、密码,其中用户名和邮箱都不能是数据库中已有的数据;用户登陆时可以使用用户名+密码,也可以使用邮箱+密码,如果输入错误则会显示相应的提示。
2.4.1.2查看与修改账号信息
账号的基本信息信息包括:用户名、邮箱、密码,更多信息包括:头像、年龄、所在位置、介绍等。以上信息用户均可查看并修改,修改用户名或邮箱时必须保证与已有账户不重复;修改密码时需要先输入原有密码。
2.4.1.3用户发帖与修改
用户发帖时的信息包括:标题、正文、配图、发在哪个版块,所有项目均填写后可以发帖,但并不会直接显示在主页,而是需要管理员审核。用户修改帖子时可以修改帖子中的任意数据,但修改完后依然需要管理员审核才能显示在主页。
2.4.1.4用户筛选搜索帖子
用户有两种途径筛选帖子,一是根据版块筛选,选择某一版块后显示该板块内的所有已审核的帖子;二是根据关键词进行搜索,如果用户想针对某特定目标的相关帖子进行搜索,则可以在搜索栏输入关键词,根据此关键词,系统搜索并显示在题目或内容上与之相关的帖子。由于用户可以修改帖子,为了保证用户能看到最新的帖子,筛选的结果要按照帖子的修改时间排序而非发布时间,同时为了保证用户能清楚帖子的时效性,应显示帖子的发布时间。
2.4.1.5用户点赞、收藏帖子
用户可以点赞自己喜欢的帖子,也可以收藏帖子方便日后查看,这两个功能必须在登陆后使用,收藏帖子后用户可以在自己的主页中相应的区域进行查看。
2.4.1.6用户评论及删除评论
用户可以评论任意已审核的帖子,也可以删除自己的评论。另外,发帖的用户可以删除自己的帖子下任意用户的评论。
2.4.1.7管理员对普通账号的操作
在管理端系统中,所有账号将以列表形式展示,管理员不仅可以从列表中进入用户的个人信息详情页面,也可以删除任意普通用户及其相关的所有信息,包括该用户的发帖、评论等,删除后不可复原。
2.4.1.8管理员管理帖子
管理员可以查看用户发布的帖子,并对帖子进行审核,新发布的或修改的帖子需要审核后才能显示在主页。此外,管理员还可以修改已审核或已拒绝的帖子的审核状态。由于用户可以修改帖子,为保证发布的帖子合法合规,用户修改帖子后管理员审核状态会变为“待审核”,管理员仍需审核该帖子,然后才能显示在主页。
2.4.1.9管理员管理论坛中各个版块
论坛中的所有帖子均按版块进行分区,管理员有权限新增、修改、删除任意版块,需要特别注意的是,在删除版块时,该版块内的所有帖子也将一并被删除。
2.4.2非功能性需求
对于普通用户,本论坛在使用中应方便快捷、界面美观,对于用户的大多数操作,系统都应有相应的提示或错误信息。
对于管理员,页面布局应清晰明了,各项数据一目了然,提高管理效率。
2.5.1数据库整体关系设计
根据用户、头像、帖子、评论、版块、管理员间的对应关系,本系统的数据库数据库E-R图设计如图2-3所示。
图2-3 数据库ER图
2.5.2数据库表设计
根据E-R,本校园论坛系统的关系表设计如下。
用户表(YH) 表记录了账号的基本信息和详细信息,包括系统序号,用户名,密码,注册时间,用户性别,当前位置,注册邮箱,用户年龄,个人简介。
帖子表(TZ)表记录了所有帖子的所有信息,包括系统序号,初次发表时间,发帖用户的系统序号,发帖用户的用户名,该帖子当前的审核状态,帖子题目,正文,图片,所属的版块名序号。
评论表(PL)表记录了所有评论的所有信息,包括系统序号,发评论用户的系统编号,该评论所属的帖子系统序号,该评论的具体内容,评论发表的时间。
版块表(BK)表记录了所有版块的所有信息,包括系统序号,该版块的名称,该板块的创建时间。
头像表(TX)记录了所有用户和其头像的对应关系,包括用户系统序号,该头像的链接,头像的上传时间。
收藏表(SC)表记录了所有收藏关系的信息,包括系统序号,被收藏帖子的系统序号,收藏该帖子的用户系统序号,被收藏的时间。
点赞表(DZ)记录了所有点赞关系的信息,包括系统序号,被点赞帖子的系统序号,点赞用户的系统序号,点赞时间。
管理员(GLY)表记录了所有管理员的,包括系统序号,账号名字,密码。
数据库表关系图如图2-4所示。
图2-4 数据表关系图
2.5.3数据库详细说明
用户表(YH)的设计方案如表2-1所示。
表2-1 用户表(YH)设计方案
属性名 数据种类 主键属性 内容 外键属性
YHid 整数类型 是 系统序号 否
YHname 字符型 否 用户名 否
YHage 整数类型 否 用户年龄 否
YHsex 字符型 否 用户性别 否
YHpassword 字符型 否 密码 否
YHemail 字符型 否 注册邮箱 否
YHfamily 字符型 否 地址 否
YHintro 字符型 否 个人简介 否
YHcreatetime 时间戳 否 注册时间 否
帖子表(TZ)的设计方案如表2-2所示。
表2-2帖子信息表(TZ)设计方案
属性名 数据种类 主键属性 内容 外键属性
TZid 整数类型 是 系统序号 否
TZtitles 字符型 否 帖子题目 否
TZcontent 字符型 否 正文 否
TZphoto 字符型 否 照片 否
BKname 字符型 否 所属版块名 否
TZcreatetime 时间戳 否 发布时间 否
YHrid 整数类型 否 发帖用户系统序号 是
YHname 字符型 否 发帖人用户名 否
TZstatus 整数类型 否 审核情况 否
评论表(PL)的设计方案如表2-3所示。
表2-3评论表(PL)设计方案
属性名 数据种类 主键属性 内容 外键属性
PLid 整数类型 是 评论系统序号 否
PLcontent 字符型 否 评论正文 否
YHid 整数类型 否 发评论用户系统序号 是
TZid 整数类型 否 被评论帖子系统序号 是
PLcreatetime 时间戳 否 评论发布时间 否
版块表(BK)的设计方案如表2-4所示。
表2-4 版块表(BK)设计方案
属性名 数据种类 主键属性 内容 外键属性
BKid 整数类型 是 版块系统序号 否
BKname 字符型 否 版块名 否
BKcratetime 时间戳 否 创建时间 否
用户头像表(TX)的设计方案如表2-5所示。
表2-5 用户头像表(TX)设计方案
属性名 数据种类 主键属性 内容 外键属性
YHid 整数类型 是 用户系统序号 是
TXphoto 字符型 否 图片链接 否
用户帖子收藏表(SC)的设计方案如表2-6所示。
表2-6 收藏表(SC)设计方案
属性名 数据种类 主键属性 内容 外键属性
SCid 整数类型 是 系统序号 否
YHid 整数类型 否 收藏用户系统序号 是
TZid 整数类型 否 被收藏帖子系统序号 是
管理员表(GLY)的设计方案如表2-7所示。
表2-7管理员表(GLY)设计方案
属性名 数据种类 主键属性 内容 外键属性
GLYid 整数类型 是 系统序号 否
GLYname 字符型 否 账号名 否
GLYpassword 字符型 否 密码 否
GLYctratetime 时间戳 否 创建时间 否
(1)主页布局设计
系统首页分为三个部分:顶部栏、文章展示、版块选择。
其中顶部栏左侧显示论坛logo和“首页”按钮,点击即可从任意页面跳转至系统首页;顶部栏靠近中间部分为搜索框,左半为一个文本框,右边为“搜索”按钮;顶部栏右侧包括一个管理端入口和一个“登陆”按钮,在用户登陆后则变为用户头像和“写文章”按钮,点击头像后可选择进入个人主页、修改基本信息、退出登陆等。
文章展示部分大约占页面左侧四分之三的区域,从上至下排列每一篇帖子的简略信息,包括用户、标题、正文开头、配图、发布时评论数、收藏按钮、点赞按钮等,若未登录则点赞按钮显示为“登陆后点赞”文字,收藏按钮显示为“登陆后收藏”文字。若用户进行了版块筛选或关键词筛选,则该部分显示筛选后的文章列表。
版块选择部分显示系统中的所有版块,包括版块图标与名字,用户点击后系统在左侧显示筛选后的结果。界面布局效果如图2-5所示。
图2-5 系统首页布局图
(2)个人主页布局设计
用户个人主页由三部分构成,包括顶部栏、个人信息、帖子列表,其中顶部栏与首页相同。
个人信息包括背景图、用户头像、账号名、居住地、简个人介、用户邮箱、性别、年龄等,自上至下靠左显示,中间偏右侧区域有“编辑资料”按钮,点击后弹出模态框,可以修改个人资料。
帖子列表有三个标签,分别是动态、回答和收藏,选择后,分别纵向展示该用户发布的帖子、回复过的帖子、收藏的帖子的基本信息。个人主页布局如图2-6所示。
图2-6 个人主页布局图
(3)发帖页面布局设计
用户点击“写文章”按钮后进入发帖页面,页面顶部的顶部栏与主页相同。主体部分自上至下排列帖子的各项信息,依次为配图、标题、版块、正文。发帖页面布局如图2-7所示。
图2-7 发帖页面布局图
(4)管理员端布局设计
管理员端页面分为三个主要区域:顶部栏、左侧功能选择、右侧数据展示。
顶部栏左侧按钮可切换至用户端,右侧为登陆按钮,登陆后改为退出按钮,并显示该管理员的头像和账号名。
左侧功能选择栏显示管理员头像,下面是各项管理栏目的选择,包括用户管理、文章管理、版块管理。
右侧大片区域为数据展示区,根据左侧选择的不同分别展示用户信息、帖子信息、版块信息,均为纵向排列,横向展示详细信息,其中用户管理的最右侧有删除用户按钮,帖子管理的最右侧显示该帖子的审核状态以及审核功能按钮,版块管理右侧有修改按钮和删除按钮,顶部有新增按钮。帖子管理的布局如图2-8所示。
图2-8 管理员端帖子管理布局图
(1)用例1:用户登陆
常规流程:点击打开登陆界面,输入账号和密码/邮箱和密码,点击“登陆”按钮,用例开始执行,系统验证账号密码有效性,执行成功,进入用户个人主页。
备选流程:主流程中,账号/邮箱无效或密码错误则显示相应的提示信息,用例结束。
前置条件:用户进入系统主页。
后置条件:执行成功则更新当前的登陆信息,否则系统状态不变。
(2)用例2:用户注册
常规流程:在系统主页右上角点击登陆,在模态框中选择“注册”,点击打开注册界面,分别输入用户名、注册邮箱、账号密码,点击“注册”按钮,用例开始执行,系统检测用户信息的有效性,数据有效则向数据库插入数据,并进入个人主页。
备选流程:主流程中,账号/邮箱无效则显示相应的提示信息,用例结束。
前置条件:用户进入系统主页。
后置条件:执行成功则更新当前登陆信息,否则系统状态不变。
(3)用例3:用户发帖
常规流程:点击进入发帖界面,输入标题、正文、选择配图、选择版块,点击“发布”按钮,用例开始执行,系统尝试将帖子信息插入数据库表,若插入成功,则前端页面提示帖子发布成功。
备选流程:写入数据库失败则返回错误信息,前端界面提示发布失败,用例结束。
前置条件:用户进入系统主页并登陆。
后置条件:执行成功则返回系统首页。
(4)用例4:用户评论
常规流程:用户打开帖子详细信息,在文本框内输入评论,点击“评论”按钮,用例开始执行,系统尝试向数据库插入数据,若插入成功则提示评论成功。
备选流程:主流程中,写入数据库失败则返回错误信息,前端界面提示评论失败,用例结束。
前置条件:用户进入系统主页并登陆。
后置条件:执行成功则刷新当前帖子详情界面。
(5)用例5:搜索帖子
常规流程:用户在文本框中输入搜索关键词,点击“搜索”按钮,用例开始执行,系统在数据库中查找相应的帖子,若找到则返回帖子列表。
备选流程:主流程中,未找到相应帖子则返回空列表,前端界面提示无相关帖子,用例结束。
前置条件:用户进入系统主页。
后置条件:执行成功则刷新当前界面并显示返回的帖子列表。
(6)用例6:管理员删除普通用户账号
常规流程:在管理端用户列表中,每条用户信息右侧有一个“删除”按钮,点击后系统显示警告,提示删除后无法恢复,管理员选择确定,用例开始执行,系统修改数据库,删除相应数据。
备选流程:主流程中,管理员在警告界面点击取消,则不执行任何操作。
前置条件:管理员进入用户管理页面。
后置条件:刷新用户管理页面。
(7)用例7:审核文章
常规流程:管理员点击帖子信息右侧的“通过审核”按钮,用例开始执行,系统修改数据库,将对应帖子的状态改为已审核。
前置条件:管理员进入帖子管理页面。
后置条件:刷新帖子管理页面。
(8)用例8:修改版块
常规流程:管理员点击版块信息右侧的“修改”按钮,系统弹出修改框,管理员输入新的版块名,点击确定,用例开始执行,系统修改数据库,更改相应的版块名。
前置条件:管理员进入版块管理页面。
后置条件:刷新版块管理页面。
2.8本章小结
本章主要对系统进行总体设计,包括系统配置与架构、设计模式、逻辑控制方法的设计,功能模块的划分,开发环境和发开工具的选择,数据库设计,各主要页面的总计布局设计,并且确定了系统的主体框架,同时进行了需求分析、设计了用户用例,为后续详细设计提供支持。
普通用户和管理员均可对用户信息进行管理,其中普通用户可以注册并登录,在登陆后可以修改自己账号的基本信息和详细信息。管理员可以在管理端登陆后查看所有已注册用户的信息,并且可以删除某账号的全部信息,删除后,系统还将删除与该账号相关的所有信息,包括发帖、评论等。用户管理模块流程图如图3-1所示。
图3-1 用户管理模块流程图
管理员登陆时先验证账号及密码,通过则进入管理员端,可以查看已注册的用户列表,且可以进行删除,点击“删除”按钮并在警告框中确认后,系统将删除对应用户账号的所有信息。
普通用户注册时,需要输入用户名、注册邮箱和密码,其中用户名和注册邮箱均不能与已存在的用户名或邮箱重合,成功注册后进入普通用户系统主页。
普通用户直接登陆成功后也会进入系统首页,可通过右上角头像按钮进入个人主页,在个人主页中用户可以修改个人信息、上传头像,输入新信息后点击确认按钮则修改完成。
普通用户和管理员均可对帖子进行管理,其中普通用户可以发布、修改、删除自己的帖子,而系统管理员可以审核通过或拒绝通过新发布或更改的帖子。帖子管理模块流程如图3-2所示。
图3-2 帖子管理模块流程图
管理员登陆后,可在管理端查看所有帖子,包括未审核的,已审核通过的和未通过的,对于以上三种帖子,管理员均可以将其设置为“审核通过”或“审核不通过”。
普通用户在登陆进入系统首页后,可在右上角点击发帖按钮进入发帖页面,在此页面中,用户需填写文章标题,正文内容,选择所属版块并上传配图或照片,然后点击发布按钮,帖子将进入待审核状态。
普通用户在登陆后查看自己发布的帖子时,可点击“修改帖子”按钮进入修改页面,布局与发帖页面相同,但所有信息会默认显示为这一帖子的信息,在修改了任意信息后,右上角“更新”按钮将变为可选,点击后文章内容被修改,帖子状态变为“待审核”。
普通用户在登陆后查看自己发布的帖子时,可点击“删除”按钮删除该帖子,同时会删除与该帖子相关的所有评论、收藏与点赞信息。
只有登陆后的普通用户可以对帖子的评论进行管理,其中发帖的用户可以删除自己帖子下的任意评论,而进行评论的用户可以对任意帖子发表评论或删除自己发表的评论。评论管理模块流程如图3-3所示。
图3-3 评论管理模块流程图
普通用户在登陆后,进入某帖子的详情页面,帖子最底部会出现评论区包含输入评论的文本框和其他用户的评论,在文本框中输入评论后点击评论按钮可以提交评论,这一评论将更新在评论区的最顶部。对于自己发布的评论,用户也可以选择删除。
普通用户在查看自己发的帖子时,下方评论区中所有评论旁均有“删除”按钮,点击即可删除相应的评论。
普通用户对收藏的管理分为两种:新增和删除。收藏管理模块流程如图3-4所示。
图3-4 收藏管理模块流程图
用户进入系统首页后可选择查看任意已审核帖子的详细信息,但只有已登录的用户界面才显示收藏按钮,点击后该帖子将加入该用户的收藏列表。
用户登陆并进入个人主页后,可查看自己收藏的帖子列表,每一条帖子旁均有“删除”按钮,点击后可将该帖子从自己的收藏列表中移除。
只有登陆后的系统管理员有管理版块的权限,在管理端的版块管理列表中,系统管理员可以进行新增、修改名称和删除的操作,对版块的操作将同时影响该版块下的所有帖子。版块管理流程图如图3-5所示。
图3-5 版块管理模块流程图
在管理端板块列表的最上方有“新增”按钮,点击后弹出模态框,管理员输入版块名称后点击确定即可增加新板块。
管理端板块列表中,每个板块右侧均有“修改”和“删除”两个按钮,点击修改后弹出模态框,可以输入新的版块名,同时将显示原有版块名作为提示;点击删除后将弹出警告框,若选择“确认”,则系统将删除该版块,并删除数据库中与该板块所有的帖子信息。
本章详细设计了系统的各个主要模块功能和运行流程,并进行了代码实现,出于篇幅考虑,仅展示流程图而不展示具体代码。
本校园论坛系统选择黑盒测试,在测试时不考虑系统的内部结构和流程,只考虑输入与结果,测试内容包括系统的所有功能。
4.2.1用户注册、登陆测试
(1)用户注册测试
测试用例编号:ZC_001;
测试流程:用户进入系统首页,点击登陆按钮,在弹出的登陆模态框中点击注册按钮,填写合法的用户名、邮箱、密码,点击注册按钮。
预期现象:注册成功,跳转至系统首页。
实际现象:注册成功,跳转至系统首页。
测试用例编号:ZC_002;
测试流程:用户进入系统首页,点击登陆按钮,在弹出的登陆模态框中点击注册按钮,填写合法的用户名、邮箱,不填写密码,点击注册按钮。
预期现象:注册失败,提示请填写密码。
实际现象:注册失败,提示请填写密码。
测试用例编号:ZC_003;
测试流程:用户进入系统首页,点击登陆按钮,在弹出的登陆模态框中点击注册按钮,填写已存在的用户名或邮箱,填写密码,点击注册按钮。
预期现象:注册失败,提示该用户名或邮箱已存在。
实际现象:注册失败,提示该用户名或邮箱已存在。
测试用例编号:ZC_004;
测试流程:用户进入系统首页,点击登陆按钮,在弹出的登陆模态框中点击注册按钮,不填写用户名或邮箱,填写密码,点击注册按钮。
预期现象:注册失败,提示该用户名或邮箱不能为空。
实际现象:注册失败,提示该用户名或邮箱不能为空。
(2)用户登陆测试
测试用例编号:DL_001;
测试流程:用户进入系统首页,点击登陆按钮,在弹出的登陆模态框中填写已注册的用户名/邮箱和密码,点击登陆按钮。
预期现象:登陆成功,系统跳转至首页。
实际现象:登陆成功,系统跳转至首页。
测试用例编号:DL_002;
测试流程:用户进入系统首页,点击登陆按钮,在弹出的登陆模态框中填写已注册的用户名/邮箱和错误的密码,点击登陆按钮。
预期现象:登陆失败,清空密码栏,提示密码错误。
实际现象:登陆失败,清空密码栏,提示密码错误。
测试用例编号:DL_003;
测试流程:用户进入系统首页,点击登陆按钮,在弹出的登陆模态框中填写未注册的用户名/邮箱和密码,点击登陆按钮。
预期现象:登陆失败,清空用户名和密码栏,提示用户名/邮箱不存在。
实际现象:登陆失败,清空用户名和密码栏,提示用户名/邮箱不存在。
4.2.2用户发帖、修改、删除测试
(1)用户发帖测试
测试用例编号:FT_001;
测试流程:用户登陆进入系统首页,点击右上角发帖按钮,进入发帖页面,用户填写帖子标题,填写帖子正文,上传图片,选择版块,点击发布按钮。
预期现象:发布成功,系统跳转至首页,管理员端显示有新的帖子待审核。
实际现象:发布成功,系统跳转至首页,管理员端显示有新的帖子待审核。
测试用例编号:FT_002;
测试流程:用户登陆进入系统首页,点击右上角发帖按钮,进入发帖页面,用户不填写帖子标题,填写帖子正文,上传图片,点击发布按钮。
预期现象:发布失败,弹出标题不得为空的提示。
实际现象:发布失败,弹出标题不得为空的提示。
测试用例编号:FT_003;
测试流程:用户登陆进入系统首页,点击右上角发帖按钮,进入发帖页面,用户填写帖子标题,不填写帖子正文,上传图片,点击发布按钮。
预期现象:发布失败,弹出正文内容不得为空的提示。
实际现象:发布失败,弹出正文内容不得为空的提示。
(2)用户修改帖子测试
测试用例编号:XGTZ_001;
测试流程:用户登陆进入系统首页,点击头像进入个人主页,选择一篇自己发布的帖子,在帖子详情页面选择修改文章,进入修改帖子界面,改动正文和标题的部分字符,点击更新按钮。
预期现象:更新成功,系统返回文章详情页面。
实际现象:更新成功,系统返回文章详情页面。
测试用例编号:XGTZ_002;
测试流程:用户登陆进入系统首页,点击头像进入个人主页,选择一篇自己发布的帖子,在帖子详情页面选择修改文章,进入修改帖子界面,不修改任何内容,点击更新按钮。
预期现象:更新按钮无法点击。
实际现象:更新按钮无法点击。
(3)用户删除帖子测试
测试用例编号:SCTZ_001;
测试流程:用户登陆进入系统首页,点击头像进入个人主页,查看自己发布的帖子列表,点击删除按钮,在弹出的提示框中选择确定。
预期现象:删除成功,系统更新当前个人主页。
实际现象:删除成功,系统更新当前个人主页。
测试用例编号:SCTZ_002;
测试流程:用户登陆进入系统首页,点击头像进入个人主页,查看自己发布的帖子列表,点击删除按钮,在弹出的提示框中选择取消。
预期现象:删除失败,系统返回个人主页。
实际现象:删除失败,系统返回个人主页。
4.2.3用户评论、删除评论测试
(1)用户评论测试
测试用例编号:PL_001;
测试流程:用户登陆进入系统首页,点击进入某一帖子详情页面,在最下方评论区文本框中输入评论内容,点击评论按钮。
预期现象:评论成功,系统刷新当前帖子详情页面。
实际现象:评论成功,系统刷新当前帖子详情页面。
(2)用户删除评论测试
测试用例编号:SCPL_001;
测试流程:用户登陆进入系统首页,点击进入某一帖子详情页面,在最下方评论区选择自己写的评论,点击删除按钮。
预期现象:删除成功,系统刷新当前帖子详情页面。
实际现象:删除成功,系统刷新当前帖子详情页面。
测试用例编号:SCPL_002;
测试流程:用户登陆进入系统首页点击头像进入个人主页,查看自己发布的帖子列表,进入某一帖子详情页面,在最下方评论区选择一条评论,点击删除按钮。
预期现象:删除成功,系统刷新当前帖子详情页面。
实际现象:删除成功,系统刷新当前帖子详情页面。
4.2.4用户点赞、收藏测试
(1)用户点赞测试
测试用例编号:DZ_001;
测试流程:用户登陆进入系统首页,点击进入某一帖子详情界面,在最下方功能栏中点击点赞按钮。
预期现象:点赞成功,图标变为已选中状态。
实际现象:点赞成功,图标变为已选中状态。
测试用例编号:DZ_002;
测试流程:用户登陆进入系统首页,找到一篇点赞过的帖子,点击进入详情界面,在最下方功能栏中点击点赞按钮。
预期现象:取消点赞成功,图标变为未选中状态。
实际现象:取消点赞成功,图标变为未选中状态。
(2)用户收藏测试
测试用例编号:SC_001;
测试流程:用户登陆进入系统首页,点击进入某一帖子详情界面,在最下方功能栏中点击收藏按钮。
预期现象:收藏成功,图标变为已选中状态,该帖子加入收藏列表。
实际现象:收藏成功,图标变为已选中状态,该帖子加入收藏列表。
测试用例编号:SC_002;
测试流程:用户登陆进入系统首页,找到一篇收藏过的帖子,点击进入详情界面,在最下方功能栏中点击收藏按钮。
预期现象:取消收藏成功,图标变为未选中状态,该帖子移除收藏列表。
实际现象:取消收藏成功,图标变为未选中状态,该帖子移除收藏列表。
4.2.5用户修改个人信息测试
(1)用户修改详细信息
测试用例编号:XGXXXX_001;
测试流程:用户登陆进入系统首页,点击头像进入个人主页,点击修改资料按钮,在弹出的模态框中修改任意数据,点击确认按钮。
预期现象:修改成功,系统返回个人主页。
实际现象:修改成功,系统返回个人主页。
(2)用户修改基本信息
测试用例编号: XGJBXX_001;
测试流程:用户登陆进入系统首页,点击头像,选择修改详细信息,在弹出的模态框中选择修改密码,输入原密码,输入新密码,点击确认。
预期现象:修改成功,系统返回首页。
实际现象:修改成功,系统返回首页。
4.2.6用户查看帖子测试
(1)用户查看自己发布的帖子
测试用例编号:CKFB_001;
测试流程:用户登陆进入系统首页,点击头像进入个人主页,在下方列表中选择动态栏。
预期现象:个人主页刷新,显示该用户发布的帖子列表。
实际现象:个人主页刷新,显示该用户发布的帖子列表。
(2)用户查看收藏的帖子
测试用例编号:CKSC_001;
测试流程:用户登陆进入系统首页,点击头像进入个人主页,在下方列表中选择收藏栏。
预期现象:个人主页刷新,显示该用户收藏的帖子列表。
实际现象:个人主页刷新,显示该用户收藏的帖子列表。
(3)用户查看自己评论的帖子
测试用例编号:CKPL_001;
测试流程:用户登陆进入系统首页,点击头像进入个人主页,在下方列表中选择回复栏。
预期现象:个人主页刷新,显示该用户参与评论的帖子列表。
实际现象:个人主页刷新,显示该用户参与评论的帖子列表。
4.2.7用户筛选帖子测试
(1)关键词筛选
测试用例编号:GJCSX_001;
测试流程:用户登陆进入系统首页,在上方搜索框输入关键词,点击搜索按钮。
预期现象:系统首页刷新,显示包含该关键词的帖子列表。
实际现象:系统首页刷新,显示包含该关键词的帖子列表。
测试用例编号:GJCSX_002;
测试流程:用户登陆进入系统首页,在上方搜索框不输入任何数据,点击搜索按钮。
预期现象:系统不进行任何操作。
实际现象:系统不进行任何操作。
(2)版块筛选
测试用例编号:BKSX_001;
测试流程:用户登陆进入系统首页,在右侧版块列表点击某一版块图标或文字。 预期现象:系统首页刷新,显示该板块下的所有已审核的帖子。
实际现象:系统首页刷新,显示该板块下的所有已审核的帖子。
4.2.8管理员管理用户测试
(1)管理员查看用户信息
测试用例编号:GLYCKYH_001;
测试流程:管理员进入系统管理端,输入账号密码登陆,在左侧功能区选择用户管理,在用户列表中点击用户名。
预期现象:跳转至用户个人信息页面。
实际现象:跳转至用户个人信息页面。
(2)管理员删除用户账号
测试用例编号:GLYSCYH_001;
测试流程:管理员进入系统管理端,输入账号密码登陆,在左侧功能区选择用户管理,在用户列表中点击某用户的删除按钮,在弹出的警告框中选择确认。
预期现象:页面刷新,该用户账号被删除。
实际现象:页面刷新,该用户账号被删除。
测试用例编号:GLYSCYH_002;
测试流程:管理员进入系统管理端,输入账号密码登陆,在左侧功能区选择用户管理,在用户列表中点击某用户的删除按钮,在弹出的警告框中选择取消。
预期现象:取消删除成功,返回用户列表。
实际现象:取消删除成功,返回用户列表。
4.2.9管理员管理帖子测试
(1)管理员通过审核
测试用例编号:GLYTGSH_001;
测试流程:管理员进入系统管理端,输入账号密码登陆,在左侧功能区选择帖子管理,在帖子列表中点击某帖子的通过审核按钮。
预期现象:通过审核成功,页面刷新,该帖子状态显示为审核通过。
实际现象:通过审核成功,页面刷新,该帖子状态显示为审核通过。
(2)管理员拒绝通过审核
测试用例编号:GLYJJTGSH_001;
测试流程:管理员进入系统管理端,输入账号密码登陆,在左侧功能区选择帖子管理,在帖子列表中点击某帖子的拒绝通过审核按钮。
预期现象:拒绝通过成功,页面刷新,该帖子状态显示为审核未通过。
实际现象:拒绝通过成功,页面刷新,该帖子状态显示为审核未通过。
4.2.10管理员管理版块测试
(1)管理员新增版块
测试用例编号:XZBK_001;
测试流程:管理员进入系统管理端,输入账号密码登陆,在左侧功能区选择版块管理,点击新增版块按钮,在弹出的模态框中输入新板块的名字,点击确认按钮。
预期现象:新增版块成功,页面刷新,显示新增的版块。
实际现象:新增版块成功,页面刷新,显示新增的版块。
(2)管理员修改版块
测试用例编号:XGBK_001;
测试流程:管理员进入系统管理端,输入账号密码登陆,在左侧功能区选择版块管理,点击修改版块按钮,在弹出的模态框中输入新的版块名,点击确认按钮。
预期现象:修改版块成功,页面刷新。
实际现象:修改版块成功,页面刷新。
测试用例编号:XGBK_002;
测试流程:管理员进入系统管理端,输入账号密码登陆,在左侧功能区选择版块管理,点击修改版块按钮,在弹出的模态框中输入过长的版块名,点击确认按钮。
预期现象:修改版块失败,提示版块名过长。
实际现象:修改版块失败,提示版块名过长。
(3)管理员删除版块
测试用例编号:SCBK_001;
测试流程:管理员进入系统管理端,输入账号密码登陆,在左侧功能区选择版块管理,点击删除版块按钮,在弹出的警告框中选择确认。
预期现象:删除版块成功,页面刷新。
实际现象:删除版块成功,页面刷新。
测试用例编号:SCBK_002;
测试流程:管理员进入系统管理端,输入账号密码登陆,在左侧功能区选择版块管理,点击删除版块按钮,在弹出的警告框中选择取消。
预期现象:取消删除版块成功,返回板块列表。
实际现象:取消删除版块成功,返回板块列表。
本章主要进行了系统测试与分析,包括不同用户类型的各类操作。经测试,本校园论坛系统可以正确运行。
本校园论坛的设计与实现,从构思到结题共用了四个月的时间,按照开题任务书的规划,前一个月时间用来进行文献查阅、需求分析、系统整体架构设计、数据库设计,第二、第三个月进行了功能模块的设计,包括功能细分、业务逻辑流程设计、具体代码实现,从第四个月开始进行测试优化,同时对论文进行撰写。
对比开题时所设计的功能和需求,本校园论坛系统基本完成了最初的目标,实现了大部分的基本功能,同时在实现过程中加入了计划之外的功能,优化了设计。由于整个项目的时间有限,本校园论坛系统依然存在这许多可改进的空间。在之后的工作中,我会继续完善系统,修改落实解题验收时老师们提出的意见,优化用户的使用体验,参考现在较为成熟的论坛并加以改进,同时发现用户新的需求,做出已有论坛还未实现的创新,使本校园论坛项目进一步完善。后续的学习中,我会继续加强web应用的实践,加强前端页面设计方法和学习和后端服务器设计实现的学习,努力做出页面简洁优美、服务器处理效率高、用户体验好的系统。
回顾这几个月的项目设计、实现与论文撰写工作,我有许多的收获,不仅将四年中学习的知识融会贯通、加以实践,还在设计和编写代码的过程中遇到并解决了许多问题,增长知识的同时还提高了自己解决问题的能力。在今后的学习中,我将谨记“规格严格,功夫到家”的校训,继续努力学习专业知识,进一步提高自身水平。
参考文献
[1]刘京华等.Java Web 整合开发王者归来[M].北京:清华大学出版社,2010.1
[2]胡杰.新媒体背景下学校对网络舆论场域的正向导引[J].教学与管 理,2021(12):42-44.
[3]姜启雯,罗薇,马康.校园二手物品交易平台的设计案例[J].电子技 术,2021,50(04):64-67.
[4]朱志勇.校园论坛对大学生非正式学习的影响分析[J].软件导刊(教育技 术),2015,14(08):56-58.
[5]杨兰.如何有效利用校园论坛重塑高校形象[J].科技视界,2013(33):40+151.
[6]岳永杰.浅析校园文化氛围对学生素质的培育作用[J].科教文汇(中旬 刊),2014(04):157-158.
[7]顾刘冰.从BBS校园网络对大学生学习的影响[J].现代远程教育研究,2015.
[8]蒋凡,高俊波,张敏,王煦法.BBS中主题系统的设计与实现[J].中国科学技 术学报,2012.
[9]胡杰.新媒体背景下学校对网络舆论场域的正向导引[J].教学与管 理,2021(12):42-44.
[10]康素玲,许志永.校园信息交流平台的研究与设计——基于PHPWind[J].科技视 界,2016(23):351+344.
[11]李鹏飞. 基于Web技术的校园论坛设计与实现[D].内蒙古科技大学,2019.
[12]王占中,崔志刚. Java Web 开发实践教程[M].北京:清华大学出版社,2016.
[13]孟佳丽. 基于开源框架的AJAX BBS系统的设计与实现[D].电子科技大 学,2013.
[14]李刚.轻量级JavaEE 企业应用实战[M].第4版.北京:电子工业出版社,2015.
[15]郭珍,王国辉. JSP 程序设计教程[M].北京:人民邮电出版社,2012.10(2014.8 重印).
[16]杨开振. 深入浅出MyBatis 技术原理与实战[M].北京:电子工业出版社,2016.
[17]胡东涛.基于web的网上文献传递系统研究与设计[D].大连理工大学学报, 2013.
[18]李洋. SSM框架在Web应用开发中的设计与实现[J].计算机技术与发展,2016.
[19]阿不都热合曼·艾合买提,热依拉·吾麦尔江.和田师范专科学校校园论坛设计与 实现[J].电脑知识与技术,2015,11(12):1-2.
[20]石正喜.MySQL数据库实用教程.北京师范大学出版社.2014.
[21]姜承尧.高性能网站MySQL数据库实践.维普中文科技期刊数据库.2013.