基于JAVA的文章发布系统的设计与实现
摘 要
随着计算机技术的迅速发展,网络正以一种前所未有的冲击力影响着人类的生产和生活。网络的快速发展,颠覆了传统的信息传播方式,冲破了传统的时间,空间的局限性,继而引发了人类阅读方式的变革。现如今,网络阅读已成为一种新的时尚,在这种趋势下,文章发布系统应运而生,该系统能以更快速有效的方式分享世界各种信息资源。
本文设计的文章发布系统是一个基于B/S模式,前台界面采用JSP语言编写,后台采用SSH框架来搭建,开发环境使用MyEclipes的系统。该系统充当了一个网络文章发布媒介的功能,实现了系统化、自动化的管理,使人们在任何地方都能获得需要的信息。该系统实现了以下几个功能:用户管理功能,文章管理功能,文章搜索功能,文章评论功能。
关键词: java;MVC;文章发布
目 录
摘要 1
Abstract 2
1 绪论 3
1.1 课题背景 3
1.2 研究现状及发展趋势 3
1.3 课题意义与目的 3
1.4 研究内容 4
1.5 论文组织 4
2 开发工具和技术介绍 5
2.1 开发工具 5
2.1.1 Myeclipse简介 5
2.1.2 MySQL简介 5
2.1.3 Tomcat简介 5
2.2 开发技术 5
2.2.1 JSP技术简介 5
2.2.2 Servlet技术简介 6
2.2.3 SSH框架整合技术简介 6
2.2.4 B/S模式简介 7
3 系统分析 8
3.1 可行性分析 8
3.1.1 技术可行性 8
3.1.2 经济可行性 8
3.1.3 操作可行性 8
3.1.4 法律可行性 8
3.2 系统需求分析 8
3.2.1 功能模块 8
3.2.2 类图 10
3.2.3 用例图 10
3.3 系统详细设计 12
3.3.1 用户注册模块 12
3.3.2 用户登录模块 12
3.3.3 文章搜索模块 13
3.3.4 用户留言模块 13
3.3.5 用户评论模块 13
3.3.6 用户信息管理模块 14
3.3.7 用户管理模块 14
3.3.8 公告管理模块 15
3.3.9 文章管理模块 15
3.3.10 评论管理模块 16
3.3.11 留言管理模块 16
3.3.12 管理员管理模块 17
3.4 数据库需求分析 18
3.4.1 系统数据库 18
3.4.2 实体E-R图 18
3.4.3 数据库表结构 21
4 系统实现 23
4.1 功能模块的实现 23
4.1.1 用户管理 23
4.1.2 公告管理 24
4.1.3 文章管理 25
4.1.4 文章评论管理 27
4.1.5 留言管理 28
4.1.6 管理员信息管理 28
4.2 界面设计 30
4.2.1 系统首页 30
4.2.2 用户注册 31
4.2.3 用户登录 31
4.2.4 文章搜索 32
4.2.5 用户留言 33
4.2.6 用户评论 34
5 系统测试 36
5.1 系统测试测试策略说明 36
5.2 测试环境 36
5.2.1 系统测试硬件环境 36
5.2.2 系统测试软件环境 37
5.3 测试时间 37
5.4 测试报告 37
总结 41
致谢 42
参考文献 43
1 绪论
1.1 课题背景
在科学技术不断地发展与进步的同时,网络也从各个方面慢慢改变着人们的生活,在当今的时代,我们的生活与网络密不可分,网络已然成为我们生活中不能缺乏的部分。比如:通过网上学习、网上购物等。而文章作为传播信息的一种途径,也需要与网络结合起来,提供网上文章浏览、发布系统供人们使用,人们在任何时间、地点只要上网即可浏览信息。在减少纸质书籍的印刷的同时也节省了资源。
传统的网络开发是基于页面、服务器端数据传输的模式,把网络表示层建立于html页面。随着信息技术的不断发展,这样的页面已经不能满足网络用户的需求了,现在,用户希望有更好的体验,同时,管理员也希望有更方便、快捷的管理。为了能够达到用户、管理员所期待的效果,我们使用jsp动态网页来实现发布系统,带给用户、管理员更好的体验。
1.2 研究现状及发展趋势
从国内外发展经验来看,信息系统可以不仅仅局限于文本、数值,使用图像、视频、声音等多种媒体可以丰富信息系统。使信息系统具有更好的效果、更好的交互性、更大的使用范围。信息的传播是指信息从发送到接收的过程。有三个要素在这个过程中:发送者、接收者和传播渠道。一般来说,传播渠道有两种:单向、双向,单向传播是指发送者传递、发送信息,不关心接收者的反馈;双向传播是指发送者接收接收者的反馈,接受者和发送者会有互动。本系统作为信息发布系统,需要与用户有交互的作用,故使用的传播渠道应该是双向的。
随着信息管理系统发展的普及,功能也越来越完善,所以要引进先进的技术来让它具有更大的优势,本文使用了JQuery、JS、CSS等前端语言来优化用户页面,使用MVC的架构、SSH的框架完整后台代码。系统采用了B/S的架构模式,将浏览器作为客户端,用户只需浏览器即可使用该系统,不需要额外下载客户端。
目前该系统有了好的发展趋势,随着信息技术的不断发展,我相信文章发布系统有更好的前景,能给人们带来更多的便利。
1.3 课题意义与目的
文章发布系统的实现减轻了管理员更新维护文章的工作量,通过该系统,将管理员的工作简化了,现在管理员只需录入文字和上传图片,就可以发布文章,缩短了文章的更新时间,方便了管理员管理维护。
文章发布系统是一个集文章发布、评论、留言于一体的管理系统,游客可以搜索相关文章,游客注册后可以登录网站属于文章进行评论以及对网站进行留言,管理员可以登录进入管理员中心对网站信息进行管理,对文章进行发布以及管理、对用户评论进行管理,对用户留言进行回复,和用户进行互动。极大的方便的网民,是广大网民点开浏览器,输入网址,即可浏览相关信息。
1.4 研究内容
本文设计系统,首先从技术、经济、操作、法律进行可行性分析。在确定系统可行的情况下,对系统用进行需求分析,确定系统的功能模块,然后设计数据库,编写代码实现详细系统功能模块,最后对完成的系统进行测试。在该系统中,前台使用CSS、JQuery等技术使界面更美观,交互性更好,而后台则是使用了SSH框架,方便代码的管理与维护。
人们普遍认为一个软件功能多就好,往往忽略了在系统功能增多的同时,也会给系统的用户带来很多麻烦。在大部分情况下,系统用户都是非专业人员,如果将系统设计的过于复杂,就需要花时间进行对这些使用者进行培训,无形中增加了系统成本。同时系统中的一些功能使用次数较少,这些功能性价比低,可以适当的进行删减,减少系统成本。因此,在功能确定、选择上,更看重的应该是合适,不要盲目追求系统的功能,系统做到简洁、实用即可。
1.5 论文组织
本文有五个章节组成:
第一章:绪论。介绍课题背景、当前研究现状及发展趋势、开设此课题意义与目的以及本文主要研究的内容。
第二章:开发环境和工具介绍。介绍了开发工具MySql,Myeclipes的使用、SSH框架的原理、MVC模型的构成以及B/S模型等的实现原理。
第三章:系统分析。从可行性分析开始到需求分析,然后进行各个模块详细分析与设计以及数据库的设计。
第四章:系统实现。根据各模块功能,编写代码完成具体实现。
第五章:系统测试。系统完成后,对系统进行完整测试。
最后对本次毕业设计进行工作总结,分析论文完成情况并对系统做出总体评价。
2 开发工具和技术介绍
2.1 开发工具
2.1.1 Myeclipse简介
MyEclipse,是一个十分优秀的用于开发Java[1]。它的功能强大,支持广泛,支持多种开源产品。它的工作平台是企业级,它扩展了EclipseIDE。利用MyEclipes可以方便数据库以及应用程序的组合,提高我们的效率。此外,它还具有模块化的结构,让我们可以单独的对某一模块进行扩展和升级。
总而言之,MyEclipes拥有功能强大的开发环境,良好的兼容性。
2.1.2 MySQL简介
MySQL通常运用于小型企业以及小型数据系统。MySQL数据库因为具有体积小、总体拥有成本低、速度快、源码开放等优势受到了热捧。
MySQL是关系数据库管理系统,它没有将数据全都放入一个仓库中,而是将数据分别写入不同表中,使数据更灵活,从而也提高了数据库的查询速度。
MySQL数据库有以下优点:
1.支持多种数据库;
2.支持多线程,充分利用CPU资源;
3.优化SQL的算法,提高查询的速度;
4.提供JDBC等多种数据库连接途径;
5.提供用于管理、检查、优化数据库操作的管理工具;
6.支持比较大型的数据库,对于几万条记录的数据库可进行同时处理;
7.使用了标准的SQL数据语言形势;
2.1.3 Tomcat简介
Tomcat是由Apache、Sun 等公司及部分个人共同开发出来的。因其技术的先进、性能的稳定、免费的使用受到了Java使用者的喜爱,同时得到了一些软件开发商的支持与鼓励。Tomcat是当前比较流行的WEB服务器。
Tomcat 服务器属于轻量级的应用服务器,在一些中小型系统中被普遍使用,它是开发和调试JSP 程序的首选。实际上Tomcat是独立运行的,当运行tomcat 时,它是作为一个单独的进程来运行的。
2.2 开发技术
2.2.1 JSP技术简介
JSP把网页设计显示与逻辑分离,它支持基于组件设计的重用,极大地方便了Web应用程序的开发。
在遇到请求访问JSP网页时,Web服务器对其中的程序首先执行,返回给客户执行的结果以及JSP文件中的HTML代码。操作数据库以及网页重新定向可以由其中插入的Java代码来实现,从而达到实现动态网页需求的功能。
JSP通常执行在服务器端,返回HTML文本到客户端,使用户在浏览器上就可浏览相关信息。
2.2.2 Servlet技术简介
Servlet是应用于服务器端的Java程序,独立于协议和平台。它担当服务器响应与客户请求的中间层。 它与启动Java应用程序通过命令行的方式不同,加载是由Web服务器进行。
Servlet生命周期:Servlet加载、实例化、服务、销毁
init():Servlet生命周期中,init()方法只执行一次,在装入Servlet是,init()方法就开始执行。
service():对客户的请求进行响应,一般使用doGet()和doPost()方法来处理请求。
destroy():destroy()方法执行一次,在服务器端卸载或者停止时就执行此方法。
2.2.3 SSH框架整合技术简介
SSH 即 Struts +Spring + Hibernate三种技术组合而成的框架。
SSH框架的优势:
1.体现了MVC三层架构的思想,极大的减轻了软件开发技术人员为解决问题所付出的精力和所承担的负担,减少了开发时间,同时也有助于新需求的开发。图2-1为MVC模型图:
图2-1 MVC模型图
2.具有可扩展性,SSH有强大的支持,在框架扩展性方面比较优秀,对于一些特殊的应用可以进行插播,解决了部分由于技术问题而实现不完整的功能。
3.具有可维护性,新需求在系统中总是经常出现,三层构架合理的分离,有效的降低了修改需求的风险。伴随着新老系统的更新,一些系统需要进行重构,ssh构架因为其兼容性较好使得重构成功率高了许多。
4.具有解耦性,软件产品的需求总是在不断的改变。客户的需求,在开发过程中慢慢深入中,变得更加清晰,准确。因此,经常在软件开发进行一段时间后,由于需求的变更,软件的开发过程也不得不进行调整。而ssh框架,因其具有良好的解耦性,使用了大量的接口编程,在软件需求变更、软件开发需要调整的时候,软件开发中部分发生改变但是其它部分依然不会发生改变,可以减轻程序员的工作量,有利于代码的维护与重写。
2.2.4 B/S模式简介
B/S(Browser/Server)结构即浏览器和服务器结构。B/S有开发简单、方便维护、分布性强的特点。B/S是对C/S架构的改进,在这种架构下,浏览器是作为客户端出现的,这种方式减轻了电脑的压力,只需装一个浏览器应用程序即可访问多种后台页面,这样减少了后期对客户端进行的维护,极大地方便了用户。
3 系统分析
3.1 可行性分析
文章发布系统,在国内外的研究已经成熟,应用已经广泛。国内外有大量的网站,他们每时每刻都要进行大量的信息维护,来保持信息的及时更新,这个时候就需要建设一个管理系统来对信息进行增、删、改、查,动态的实现操作内容。
随着网络的发展,静态网站的维护变得复杂,工作量加大。信息的不断增加,使得维护人员经常修改页面,以达到信息及时更新的效果。现在html已经不能满足用户的需要,使用动态的、交互的页面才是用户所喜欢的。所以我们要创建一个友好的、易维护的系统来吸引用户。
3.1.1 技术可行性
该系统是个小型文章发布系统,开发难度较低。经过对众多开发工具的分析,选择了Tomcat作为系统服务器、MySQL作为数据库开发工具、MyEclipes作为前后台开发工具。在技术上采用了JSP为主的页面开发语言,以及java为主的后台开发语言。在模式上采用B/S(浏览器/服务器)模式,而这些技术现在都相对成熟,完全可以满足系统的开发,所以在技术上是可行的。
3.1.2 经济可行性
文章发布系统打破了传统静态的网页,突破了传统无法交互的局限。它建立一种动态的、可交互的系统。开发本系统,一些基本的硬件和免费的软件就可以保证本系统的开发与调试,不需要再去购买设备和软件,所以在经济上是可行的。
3.1.3 操作可行性
文章发布系统开发的目的就是使用户获取信息更方便,使管理员管理信息方便。本系统通过一些调查,了解了大部分网民的需求。设计出来的系统基本满足用户的需求,而且操作十分简单,保证了使用者就算不了解系统也能使用。所以在操作上是可行的。
3.1.4 法律可行性
文章发布系统作为毕业设计,不用于商业,不侵犯专利,符合国家法律规定。所以在法律上是可行的。
通过上述可行性的分析,我可以确定本系统是可行的。
3.2 系统需求分析
在开发系统时,要对系统进行需求分析。需求分析要对系统的功能和性能进行描述,对使用的数据库进行设计。
抽象出系统的逻辑模型。了解系统要“怎么做”,在这基础上,再从系统的物理模型当中抽象逻辑模型。一般来说,物理模型中通常有许多物理因素,一些物理因素非系统所必要,这些因素就成为系统的负担,所以要分析物理模型,区分必要、非必要因素,然后在模型中去掉非必要的因素素最后获得反映系统本质的逻辑模型。
为了完整系统的描述,通常需要补充系统的逻辑模型。采用图形的方式来对网页的界面进行表达,有助于系统后续开发。
3.2.1 功能模块
根据需求分析的结果,文章发布系统主要划分两个子模块后台管理模块,前台门户模块,各模块又包含子模块。
分为以下几个模块:
界面设计模块:
用户注册模块
用户登录模块
文章搜索模块
用户留言模块
用户评论模块
用户信息管理模块
功能管理部分
用户管理模块
公告管理模块
文章管理模块
评论管理模块
留言管理模块
管理员管理模块
图3-1为文章发布系统的层次图:
图3-1 系统层次图
性能需求:
该系统在性能功能上应达到如下需求:
操作简单、界面友好:简化文章的添加功能,对于文章分类、来源等内容只需在相应的框内写入相关信息即可完成;其次在删除等功能上对用户加以提示,防止出现错删等情况的出现。
即时可布,即时见效:对文章的处理后(添加、修改、删除、查询)将及时在主页上对应的显示块内显示出来;
1.系统运行时应该高效、稳定、快速;
2.有良好的扩展性在结构上。
3.2.2 类图
模块中类的关系通常是由类图来描述的,这些描述中包括类与类之间的继承、类与接口之间的继承,类与类之间的依赖关系、聚合关系等。同时类图还要描述每一个类的详细信息,然后根据;类图进行详细的设计。
在本系统中共有六个类:
用户类包括用户的基本信息与行为:
属性包括:用户名、密码、姓名、性别、电话、地址等
动作包括:注册、登录、评论、评论、修改个人信息等
留言类包括包括留言的基本信息与行为:
属性包括:内容、留言用户、留言日期、回复等
管理员类包括包括管理员的基本信息与行为:
属性包括:用户名、密码、姓名、性别、电话、地址等
动作包括:登录、管理用户、管理文章、管理评论、管理留言、修改个人信息等
评论类包括包括评论的基本信息与行为:
属性包括:对应文章编号、内容、评论用户、评论日期等
文章类包括包括文章的基本信息与行为:
属性包括:标题、内容、发布日期等
公告类包括包括公告的基本信息与行为:
属性包括:标题、内容、发布日期等
图3-2为文章发布系统的类图:
图3-2 类图
3.2.3 用例图
用例图呈现了参与者和用例,以及它们之间的关系,是一中UML模型图。图3-3,图3-4,图3-5分别描述了游客、用户以及管理员与其功能之间的关系:
图3-3 游客用例图
图3-4 用户用例图
图3-5 管理员用例图
3.3 系统详细设计
3.3.1 用户注册模块
游客进行注册,注册成功后可对网站进行留言,文章进行评论。
用户点击注册,进入注册页面,填写个人相关信息,点击提交进行格式验证,若格式正确,到数据库中查询用户名是否存在,若存在则提示用户名已被占用,若不重复则将该条数据插入到数据库中,用户注册成功。图3-6为用户注册模块流程图:
图3-6 用户注册模块流程图
3.3.2 用户登录模块
已注册的用户进行登录,登录后可对网站进行留言,对文章进行评论。
用户点击登录,进入登录页面,填写用户名、密码,点击登录,到数据库中验证用户名、密码是否正确,若不正确回到当前页面,若正确登录成功跳转到主页面。图3-7为用户登录模块流程图:
图3-7 用户登录模块流程图
3.3.3 文章搜索模块
游客、用户、管理员都可进行文章搜索,输入关键词后,可搜索具有相关关键词的文章。
用户在搜索文章一栏中填入想要搜索的关键词,点击搜索,在数据库中检索到相关关键词的文章,在页面上显示出来。图3-8为文章搜索模块的流程图:
图3-8 文章搜索模块流程图
3.3.4 用户留言模块
用户登录后,可以使用留言的方式提出对网站的建议、对网站的评价。
用户点击留言板,在输入框内输入留言内容,点击提交,将留言信息插入到数据库中,用户留言成功,重新加载页面,该条留言更新在页面上。图3-9为用户留言模块的流程图:
图3-9 用户留言模块流程图
3.3.5 用户评论模块
用户登录后,可以使用文章评论的方式,表达自己对这篇文章的看法。
用户进入到文章详细页面后,在输入框内输入评论内容,点击提交,将评论内容插入到数据库中,用户评论成功,重新加载页面,该条评论更新到页面上。图3-10为用户评论模块的流程图:
图3-10 用户评论模块流程图
3.3.6 用户信息管理模块
用户登录后,可以对个人信息进行修改。
用户进入到主页面后,点击修改个人信息,跳转到用户个人信息修改页面,在文本框内输入修改后的内容,点击提交,在数据库中更新个人信息,用户信息修改成功,返回主页面,图3-11为用户评论模块的流程图:
图3-10 用户评论模块流程图
3.3.7 用户管理模块
管理员登录后,可以对注册用户信息进行管理,可以查询、修改、删除。
管理员登录后,进入到管理员中心用户管理页面,在输入框内输入用户名,点击查询,在数据库中查找该用户名,若用户名存在,将查询结果显示在页面上,若用户名不存在,无查询结果;点击修改,跳转到修改页面,对用户信息进行修改,填写完成点击提交,在数据库中更新,用户信息修改完成;点击删除,弹出是否删除对话框,点击确定,该用户删除成功,点击取消,取消删除返回到用户管理页面。图3-11为用户管理模块流程图:
图3-11 用户管理模块流程图
3.3.8 公告管理模块
管理员登录后,在网站公告有变动的时候,修改公告,让用户及时看到最新公告。
管理员登录后,进入到管理员中心公告管理页面,直接在文本框内输入最新公告,点击提交,在数据库中更新,公告修改成功,返回主页公告已更新。图3-12为公告管理模块流程图:
图3-12 用户管理模块流程图
3.3.9 文章管理模块
管理员登录后,可对网站文章进行管理,可以查询、添加、修改、删除。
管理员登录后,进入管理员中心文章管理页面,在输入框内输入文章关键词,点击查询,在数据库中查找该关键词对应的文章,若文章存在,将查询结果显示在页面上,若用文章不存在,无查询结果;点击添加,跳转到文章添加页面,输入要添加文章信息,插入到数据库中,添加成功;点击修改,跳转到修改页面,对文章信息进行修改,填写完成点击提交,在数据库中更新,文章信息修改完成;点击删除,弹出是否删除对话框,点击确定,该文章删除成功,点击取消,取消删除返回到文章管理页面。图3-13为文章管理模块流程图:
图3-13 文章管理模块流程图
3.3.10 评论管理模块
管理员登录后,可对网站文章评论进行管理,可以进行删除操作。
管理员登录后,进入管理员中心评论管理页面,点击删除,弹出是否删除对话框,点击确定,该评论删除成功,点击取消,取消删除返回到评论管理页面。图3-14为评论管理模块流程图:
图3-14 评论管理模块流程图
3.3.11 留言管理模块
管理员登录后,可对网站留言进行管理,可以进行删除操作。
管理员登录后,进入管理员中心留言管理页面,点击回复,进入管理员回复页面,输入回复信息,点击提交,插入到数据库中,管理员回复成功,返回到留言管理页面。点击删除,弹出是否删除对话框,点击确定,该留言删除成功,点击取消,取消删除返回到留言管理页面。图3-15为留言管理模块的流程图:
图3-15 留言管理模块流程图
3.3.12 管理员管理模块
管理员登录后,可对管理员信息进行管理,可以进行修改、删除操作。
管理员登录后,进入管理员中心管理员管理页面,点击修改,进入管理员信息修改页面,修改相关信息,点击提交,在数据库中更新,信息修改成功,返回到管理员信息管理页面。点击删除,弹出是否删除对话框,点击确定,该管理员删除成功,点击取消,取消删除返回到管理员信息管理页面。图3-16为管理员管理模块的流程图:
图3-16 管理员管理模块流程图
3.4 数据库需求分析
在系统开发需求的过程中,数据库的设计是非常重要。良好的数据库设计减少了数据冗余、提高了查询效率,降低了应用程序的编写难度。
3.4.1 系统数据库
根据系统确定的需求,本系统共需要建立5个表,其数据表的说明如表3-1所示:
表3-1 数据表说明
3.4.2 实体E-R图
E-R图是一种信息模型图,体现了系统实体与实体之间的关系。通过对系统进行需求分析,了解数据流程,根据数据流图确定实体的属性和实体之间的关系。然后根据这些实体与实体之间的关系,可以得到系统E-R。
图3-17为系统E-R图:
图3-17 系统E-R图
图3-18为用户的实体属性图:
图3-18 用户实体属性图
图3-19为留言的实体属性图:
图3-19 留言实体属性图
图3-20为文章的实体属性图:
图3-20 文章实体属性图
图3-21为文章评论的实体属性图:
图3-21 文章评论属性图
图3-22为文章类别的实体属性图:
图3-22 文章类别实体属性图
3.4.3 数据库表结构
表3-2为用户、管理员信息表:
表3-3为留言表:
表3-4为文章表:
表3-5为文章类别表:
表3-6为文章评论表:
4 系统实现
4.1 功能模块的实现
管理员点击登录,输入用户名、密码后跳转到后台管理员管理中心主页面,如图4-1所示:
图4-1 文章发布系统管理员管理中心页面
4.1.1 用户管理
管理员可对用户信息进行查询、修改、删除,页面如图4-2所示:
图4-2 管理员管理用户页面
用户查询功能,输入用户名或者姓名,点击查询信息按钮,即可对查找对应用户,图4-3为输入用户“003”的查询结果:
图4-3 管理员查询用户结果
用户删除功能,点击用户列表右侧删除可对用户进行删除。点击删除后跳出如图4-4对话框,点击确定,用户删除成功。
图4-4 管理员删除用户对话框
用户修改功能,点击用户列表右侧修改可对用户进行修改。点击修改后出现如图4-5显示页面,填入所需信息,点击提交信息按钮,即可保存修改后的用户信息。