基于JavaWeb的编程技术论坛的设计与实现
2022-06-24朱军
朱军
(西京学院 信息工程学院,陕西西安,710000)
0 引言
在如今这个信息化高速发展的时代,小小的搜索框中只需要输入几个关键字,所需要的信息便顷刻呈现在人们的面前。因此网络的便捷深受人们的追捧。但是呈现在我们面前的数据中,有大量冗余的,不准确的数据混杂其中,并且有相当大的一部分人在面对海量数据时,不能够快速准确的定位到自己所需要的信息。而且对于从事计算机编程人员来说,我们往往需要在网站上获取相关的专业性的文档和信息。如果长期没法在短时间内快速且准确地获取到专业信息,将极大地减缓项目地开发进度。而且很多时候通过多个专业人士的见解交流,往往比自己摸索要快的多。因此论坛便作为一个为人们提供的一个大型的多人的知识信息交流平台而出现[1]。
现如今的百度贴吧、知乎等论坛网站也是因此得到快速地发展。但是像这些大型综合型论坛,编程技术只是它其中的一个子模块,每个子模块中也没有具体的划分,导致信息全部混杂在一起。而且大量的无关帖、“水帖”充斥其中,对于新贴的审核力度不大,导致专业模块不再专业。
因此为了避免上述情况,专门针对学习编程技术的用户设计了此系统。该论坛系统不仅具有其他论坛所拥有的全部基本功能,还具有严格的帖子审核机制,避免无关帖子的出现。用户能够通过发帖来分享经验,帮助其他用户;用户当遇到对自己有帮助的帖子时,可以进行收藏,以防下次找不到的情况,也可以向该帖子的作者提出好友申请,通过聊天进行更加深入的交谈[2]。
1 相关技术
MySQL是一款与当今主流编程语言精密结合的数据库管理系统,作为关系型数据库的一种,采用的是表格的方式进行存储,遵循SQL结构化查询语言的标准。而且MySQL支持跨平台、体积小,容量大,开源等特点,被很多公司和用户使用。而且MySQL配合上Navicat工具,可以让用户直观地对数据库进行操作,在该工具上很清晰的看到数据的改变。
Tomcat服务器是一个开源的轻量级Web应用服务器,用于开发和调试Servlet、JSP程序。由于是开源的,在网上能够下载,所以很多程序员都首选使用Tomcat,但是由于它是轻量级的Web容器,没有办法满足复杂业务场景的要求。但是对于日常的个人来说是完全满足使用需求的。
SpringMVC是基于Java实现MVC的轻量级Web框架,MVC已经是现代Web开发中的一个很重要的部分,其中MVC是模型(Model),视图(View),控制器(Controller)的缩写,是一种软件规范[3]。
SpringMVC的原理是用户首先发送请求给前端控制器,然后前端控制器发送请求给实际的控制器,实际控制器处理请求,创建数据模型访问数据库数据,返回模型数据给实际控制器,实际控制器返回ModelAndView结果给前端控制器,前端控制器进行渲染视图在返回到前端控制器,然后再产生相应的结果返回给用户[4]。
2 系统设计需求
■ 2.1 系统需求分析
编程技术论坛所采用的是B/S结构的应用系统,而B/S的优点就是投资小,见效快。在本课题中使用Tomcat作为Web应用服务器用来响应JSP。并且不需要对硬件进行投资,基本上不需要额外开销。综合考虑,满足经济可行性。
开发该论坛需使用Java,JSP, MySQL数据库, B/S结构系统, SpringMVC以及Tomcat服务器进行开发,相关的书籍与资料在网上都可以找到,这些都为论坛的开发与完成提供了帮助。软件则使用IDEA,Navicat进行开发操作,这些软件都已经十分熟悉了,不存在操作上的难题。综上所述,在技术上是完全可行的。
编程技术论坛分为前端与后台,使用前端进行网站设计,用户无需接触后台的管理和设计。这使得用户在使用该系统时能够像访问平时浏览的网站一样不存在技术性问题,所以用户在操作上不会出现困难。综合考虑,在操作上是完全可行的。
■ 2.2 功能需求分析
2.2.1 普通用户需求分析
通过对系统功能的分析,整理出用户所具有的功能如下。
(1)注册;(2)登录;(3)我的帖子;(4)我的关注;(5)我的收藏;(6)我的隐藏查看;(7)查看我的评论;(8)查看系统消息;(9)修改个人信息;(10)签到;(11)查看帖子;(12)下载资源。
构建的用户用例图如图1所示。
图1 用户用例图
2.2.2 版主功能需求分析
版主拥有普通用户的所有功能,在此基础上增加一个板块管理功能。
管理板块中的帖子:当普通用户申请版主通过后,可以减轻后台管理员的工作量,协助进行对应板块的帖子审核管理。
构建的版主用例图如图2所示。
图2 版主用例图
2.2.3 管理员功能需求分析
通过对系统功能的分析,整理出管理员所具有的功能。
(1)登录;(2)个人信息修改;(3)用户管理;(4)论坛管理;(5)版主申请管理;(6)系统消息发送管理;(7)官方文档管理;(8)屏蔽词管理。
构建的管理员用例图如图3所示。
图3 管理员用例图
3 系统总体设计
■ 3.1 系统总体结构
基于JavaWeb的编程技术论坛主要实现了用户功能模块和管理员功能模块两大类。系统的模块结构图如图4所示。
图4 系统模块结构图
■ 3.2 数据库设计
编程技术论坛系统中一共包含如下的几个实体:管理员,用户,板块,版主申请,文件下载,轮播图,好友,聊天,系统消息,帖子,收藏,帖子查看(用于隐藏内容查看),关注和官方资讯,分别对应13张表。
管理员表如表1所示。
表1 管理员表
用户表如表2所示。
表2 用户表
板块表如表3所示。
表3 板块表
版主申请表如表4所示。
表4 版主申请表
关注表如表5所示。
表5 关注表
轮播图表如表6所示。
表6 轮播图表
帖子表如表7所示。
表7 帖子表
帖子隐藏内容查看表如表8所示。
表8 帖子隐藏内容查看表
评论表如表9所示。
表9 评论表
收藏表如表10所示。
表10 收藏表
好友申请表如表11所示。
表11 好友申请表
聊天表如表12所示。
表12 聊天表
官方资讯表如表13所示。
表13 官方资讯表
系统消息表如表14所示。
表14 系统消息表
屏蔽词表如表15所示。
表15 t_pbc表
通过对实体与实体之间对应表的关系分析,可以得出表与表之间的联系。
通过分析得出的E-R图如图5所示。
图5 系统E-R图
4 总结
本系统是基于JavaWeb的编程技术论坛网站,相比于市面上大多数的论坛网站来说,本系统虽然不像其他论坛那样功能齐全,但是本系统却拥有更明确的目标,就是为了编程爱好人员服务的,网站中所展示的内容更加具有针对性和专业性。通过管理员和版主的合作,使得网站上出现“水贴”的情况大量的减少。保证了用户能够获得更多的有用的帖子。而且网站上的内容并不全是靠着用户分享,管理员也会分享帖子和提供文件下载。网站帖子按照模块分类,使得用户在翻看帖子时更加具有效率。屏蔽词和版主的设置能够帮助管理员审核更加快速,提高帖子审核的效率。
提供下载的文件表如表16所示。
表16 文件表