基于SSH的新闻发布系统的设计与实现毕业论文设计.docx
《基于SSH的新闻发布系统的设计与实现毕业论文设计.docx》由会员分享,可在线阅读,更多相关《基于SSH的新闻发布系统的设计与实现毕业论文设计.docx(62页珍藏版)》请在冰豆网上搜索。
基于SSH的新闻发布系统的设计与实现毕业论文设计
PINGDINGSHANUNIVERSITY
毕业论文(设计)
题目:
基于SSH的新闻发布系统
的设计与实现
基于SSH的新闻发布系统的设计与实现
摘要
随着Internet的普及,越来越多的企业纷纷建立了自己的门户网站,来展示产品、与用户进行交流、与合作伙伴建立联系以及开展电子商务等。
新闻发布系统是企业门户网站的重要组成部分,因此开发新闻发布系统是适应企业发展的一种需要。
系统采用Java语言,浏览器/服务器(B/S)模式,Struts、Hibernate和Spring(SSH)三层架构进行开发,实现了新闻栏目的分类、新闻的添加、审核、发布、评论、回复等功能。
在新闻管理模块中,将通过审核的新闻生成静态Html文件存放在服务器指定位置并发布,提高了用户的访问速度。
论文首先对系统的功能、架构、数据库等进行了分析与设计,然后对系统的栏目管理、新闻管理、评论管理等模块进行了详细设计与实现。
系统测试表明各项功能达到了预期效果,具有较好的安全性和容错性。
下一步考虑增加在后台根据需要定制前台显示模板的功能,不断完善系统。
关键词:
新闻发布系统,B/S,SSH
TheDesignandImplementationoftheNewsReleasedSystemBasedonSSH
Abstract
Withthegreatpopularityofnetwork,anincreasingnumberofenterprisesarelookingforwardtoestablishingtheirownwebsites,throughwhichtheycandisplayproducts,communicatewithclients,establishpartnership,aswellasdevelope-commerce.Inaword,ithasbeenanecessityforenterprisestoestablishtheirownnewsreleasesystemwhichisoneofthemostimportantpartsforenterprisestokeeppacewiththesocialdevelopment.
ThesystemisdesignedandimplementedbasedonSSHthree-tierarchitectureusingJavalanguageandbrowser/server(B/S)mode.Thefunctionsofthenewsreleasesystemincludenewscategories,adding,auditing,releasing,commenting,recoveryandetc.ItisworthwhilementioningthatitisthroughthegeneratedstaticHTMLfileswhichhavebeenexaminedandstoredontheserverspecifiedlocationthatnewsarereleased,thusbeinggreatlyhelpfulinspeedinguptheusers’browserate.Firstofall,theessayanalysesanddesignsthefunctions,thearchitecture,thedatabaseofthesystem;thenpresentsadetaileddesignandimplementationaimingatcolumnmanagement,newsmanagement,commentmanagement,systemmanagementandsoon.
Atpresent,thesystemhasrealizedthefunctionsthatareexpectedonthewhole,whichhasbettersecurity,faulttolerance.Evenso,itcan’tdenythatthesystemhasn’taccomplishedthefunctionofcustomizingbackgrounddisplaytemplatewithoutanyspecialrequirementsconsideringtheworkloadandtimepermission.Morestudyandimprovementonthenewsreleasesystemwillbeimplementedinthefuture.
Keywords:
newsreleasedsystem,B/S,SSH
1绪论
本章首先介绍新闻发布系统的开发背景及意义,然后介绍应用现状,接着介绍本文主要工作,最后是论文结构安排。
1.1开发背景及意义
21世纪是信息的时代,是网络的时代。
传统的报纸杂志已经远远满足不了人们的需求,人们更加希望能够在网上快速及时地浏览新闻,因此获取各种各样的网上信息,已成为人们日常生活的一部分。
信息技术的发展使得整个世界越来越小,这也意味着企业的竞争环境由区域化向全球化发展,企业所处的宏观环境实际上已经不仅仅是通过信息技术员连接起来的狭义网络,而是将技术环境与经济环境结合在一起考虑,形成一种大网络的概念。
企业对信息的掌握程度、信息获取是否及时、信息能否得到充分利用、对信息的反应是否敏感准确,已越来越成为衡量一个企业市场竞争能力的重要因素。
因此企业纷纷建立起自己的门户网站,通过网站来展示产品,发布最新动态,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。
新闻发布系统是一个基于新闻和内容管理的全站管理系统,它是基于浏览器/服务器(Browser/Server,B/S)模式的Web系统,可以将杂乱无章的信息经过组织,合理有序地呈现在大家面前,主要实现对新闻的分类、添加、审核、发布、评论等,模拟一般新闻媒介发布新闻的整个过程。
新闻发布系统是构成企业门户网站的重要组成部分,担负着双重作用,一方面,可以用来动态发布有关新产品或新开发项目;另一方面又可以及时向顾客公告企业经营业绩、技术与研发进展、特别推荐或优惠的工程项目、产品和服务,从而吸引顾客,扩大顾客群[1]。
所以建立新闻发布系统是适应企业发展的一种需要,其意义是巨大的。
1.2应用现状
目前业内新闻发布系统主要分为两类,下面将分别介绍其特点和应用范围。
1.前台动态显示的新闻发布系统
该类系统大约占60%的份额,其主要特点为:
前台采用Java语言动态读取数据库的内容,随时更新,该类系统设计简单,适合大多数中小企业建站需要。
其通用性不强,一般需要量身定做,不适合大型新闻站点,当用户过多时,系统采用Java语言动态读取数据库就势必消耗大量的服务器资源,造成系统运行缓慢,甚至崩溃。
2.前台静态显示的新闻发布系统
该类系统大约占30%的市场份额,其主要特点为:
前台新闻全部生成静态HTML文件,用户浏览新闻时无须从数据库中动态读取,只需要直接下载HTML文件即可,浏览速度得到提高,同时也大大减轻了数据库服务器的压力。
该系统后台设计复杂,需要处理复杂的模板标签和各个模板之间的逻辑,一般采用三层模式实现,该类系统灵活性大,可以通过自定义模板实现界面复杂的前台页面,一般不需要为某一个企业而定做,该系统具有良好的通用性,适合各类新闻站点,同时,把前端用户和数据库分割开来,系统的安全性得到大大的提高[2]。
本文将在现有新闻发布系统基础上作如下改进:
开发一个前台静态浏览、动态查询的新闻发布系统,即在新闻审核通过时生成静态HTML文件存放在服务器指定的目录下,同时将该新闻标题及存放路径存入数据库。
用户浏览新闻时,直接加载HTML文件;以特定关键字搜索新闻时,进行动态查询并将查询结果展示给用户。
这样在一定程度上,不但解决了系统运行效率低及安全性差的问题,而且减轻了数据库服务器压力。
1.3本文工作
本文针对目前大多数新闻发布系统运行速度慢、扩展性不强、管理不方便等问题,设计并实现了一个基于SSH(Struts、Spring和Hibernate)框架的新闻发布系统。
主要工作如下:
1.分析系统需求
通过查阅相关资料及分析现有新闻发布系统具有的功能,同时在调研某公司新闻管理及发布工作流程基础上,认真分析、总结各类人员负责的相关工作,由此得出用户的功能需求和系统的性能需求。
2.选择系统架构
针对系统需求,采用模型-视图-控制器(Model-View-Controller,MVC)模式作为系统架构,不仅实现了系统的代码复用,而且便于日后的升级和维护。
3.设计系统主要功能模块
对各个模块的功能及任务进行了定义和划分。
本系统有四类角色,即普通用户、信息编辑员、信息审核员和系统管理员。
系统功能划分为五个模块:
(1)栏目管理模块:
包括栏目信息的添加、修改、删除及栏目名称以栏目结构树形式显示,使得新闻可以分类管理。
(2)新闻管理模块:
包括新闻的添加、修改、批量删除、审核、按条件查询、查看新闻评论等功能。
(3)评论管理模块:
包括评论的查询、批量审核及批量删除等,其中设置评论审核可避免垃圾评论产生。
(4)系统管理模块:
包括用户分类管理、用户权限划分、数据库备份与恢复及个人密码修改等功能。
(5)前台展示模板:
包括浏览、搜索、评论新闻及评论回复、注册用户信息和找回密码等功能。
4.实现新闻发布系统
在完成系统功能需求和数据库设计的基础上,采用SSH作为总体开发框架,Java作为开发语言,异步JavaScript和XML(AsynchronousJavaScriptandXML,AJAX)、JSON-RPC组件作为异步通信技术,实现了一个比较完整的新闻发布系统。
5.进行系统测试
从制定测试计划,到选择测试环境,再到针对某一功能编写测试用例,逐步进行测试,并分析测试结果。
1.4论文结构安排
本文从软件开发生命周期的角度阐述了系统开发过程,首先介绍了项目开发背景、意义及应用现状,然后简单介绍了系统采用的技术及开发工具,接着重点论述系统需求分析、总体设计和详细设计与实现过程,最后做系统测试以及总结。
共分为七部分,具体内容安排如下:
第一部分:
绪论。
介绍项目背景及意义、应用现状和论文结构安排等。
第二部分:
技术及开发工具。
介绍开发系统用到的相关技术及工具等。
第三部分:
需求分析。
从实际业务流程、设计目标、功能需求和性能需求四个方面对系统进行需求分析。
第四部分:
总体设计。
从系统架构设计、功能设计、数据库设计和接口设计四个方面对系统进行总体设计。
第五部分:
详细设计与实现。
首先设计系统界面,然后按照SSH三层框架的整合思想,实现本系统主要模块。
第六部分:
测试。
按照测试计划对系统进行测试。
第七部分:
结束语。
总结系统功能和优点,并对系统后续工作进行展望。
1.5本章小结
本章首先介绍了项目开发背景及意义,明确了开发本系统的重要性。
然后介绍了应用现状,指出了现有新闻发布系统的优缺点,接着给出本文工作,对整个系统设计与实现过程做了一个系统性的说明,最后给出论文结构安排。
2技术及工具介绍
本章主要从系统开发所用到的相关技术、方法及开发工具等方面进行简单介绍。
2.1B/S模式
本系统面向的用户群体是中小型企业,企业在使用系统时,需要借助互联网来发布最新产品、最新动态及与客户在线交流等。
基于此,需要采用B/S模式来设计系统。
B/S模式又称B/S结构。
它是随着Internet技术的兴起,对客户端/服务器(Client/Browse,C/S)模式的扩展。
随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是出现了B/S模式。
该模式最大特点是:
用户可以通过WWW浏览器去访问Internet上的文本、数据、图像、动画、视频点播和声音等信息,这些信息都是由许许多多的Web服务器产生的,而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。
客户端除了WWW浏览器,一般无须任何用户程序,只需从Web服务器下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。
B/S模式的优点主要有:
1.具有分布性特点,可以随时随地进行查询、浏览等业务处理;
2.业务扩展简单方便,通过增加网页即可增加服务器功能;
3.维护简单方便,只需要改变网页,即可实现所有用户的同步更新;
4.开发简单,共享性强。
2.2UML
统一建模语言(UnifiedModelingLanguage,UML)被对象管理组织(ObjectManagementArchitecture,OMG)采纳为标准建模语言,成为业界的标准。
UML作为一种定义良好、易于表达、功能强大且普遍适用的建模语言,融入了软件工程领域的新思想、新方法和新技术,成为面向对象技术学习中不可缺少的一部分。
UML的作用不仅在于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程[3]。
UML作为一种建模语言,在项目开发过程中的作用,总结起来主要有以下几个方面:
1.UML作为一种建模语言,为用户提供了一种易用的、具有可视化建模能力的语言,能够使用户使用该语言进行系统的开发工作,并且能够进行有意义的建模互换;
2.UML为面向对象建模语言的核心概念提供了可扩展性和规约机制;
3.支持高级的开发概念;
4.集成了优秀的开发实践成果和经验。
2.3相关技术
2.3.1SSH框架
SSH是一个轻量级组合框架,能更好的实现MVC模式,充分发挥了各自的优势。
其中通过Struts在表示层中处理页面请求和转发工作;通过Spring的依赖注入(InversionofControl,IoC)技术降低了程序之间的耦合性,也使程序员养成用接口编程的好习惯;通过Hibernate完成在持久层与数据库的交互工作。
三层框架的整合形成一个结构良好、功能强大,层次清晰的框架体系。
1.Struts
Struts是一个独立的MVC模式框架,很好的实现了显示处理和业务处理逻辑之间的低耦合性[4]。
但Struts主要是针对表示层设计的,对业务逻辑方面的支持不是很强,比如事务管理、安全检查等本属于系统层面的,实现代码也穿插在整个业务逻辑中,降低了代码的可维护性,而Spring则可以很好地解决这些问题。
2.Spring
Spring也是独立的MVC模式框架,通过IoC技术,降低各组件之间的依赖,而Spring提供的面向切面编程(AspectOrientedProgramming,AOP)技术,在事务管理上具有独特优势[5]。
Spring框架不仅能有效地服务中间层对象,而且易于同其他层框架进行无缝集成,使各层之间相互独立,实现了在架构上各框架间的低耦合性。
3.Hibernate
Hibernate作为一个优秀的持久化工具,通过对象关系映射(ObjectRelationalMapping,ORM)架起了Java对象与关系数据库间的桥梁,很好的协调对象与数据库的交互,提供数据查询和恢复机制,实现了与底层数据库的分离。
2.3.2AJAX
AJAX是一种运用JavaScript和可扩展标记语言(EXtensibleMarkupLanguage,XML),在网络浏览器和服务器之间传递或接收数据的技术。
AJAX的工作原理相当于在用户和服务器之间加了一个中间层,使用户请求与服务器响应异步化。
这样把以前的一些服务器负担的工作转交给客户端,利用客户端闲置的处理能力来处理,减轻服务器和宽带的负担。
通过AJAX,JavaScript可使用JavaScript的XMLHttpRequest对象来直接与服务器进行通信。
通过这个对象,JavaScript可在不重载页面的情况与Web服务器交换数据。
2.3.3JSON-RPC框架
JSON-RPC是一个客户端远程调用服务器端方法的框架。
JSON-RPC-Java是一个用Java来实现动态JSON-RPC的框架[6]。
利用它内置的一个轻量级JSON-RPCJavaScript客户端,可以透明地在客户端JavaScript中调用服务器端的Java代码。
在Web应用中,使用JSON-RPC组件的一般步骤如下:
1.首先导入jsonrpc.jar包和jsonrpc.js文件到指定的位置;
2.在web.xml中配置servlet和servlet-mapping;
3.在JSP页面中引入jsonrpc.js文件和JSONRPCBridge类;
4.将服务器端的JavaBean放置到要使用JSOM-RPC的JSP文件中。
5.将服务器端的JavaBean注册到JSONRPCBridge对象中。
6.在JavaScript脚本中创建一个JSONRpcClient对象,如:
jsonrpc=newJSONRpcClient(“JSON-RPC”);
7.利用创建的JSONRpcClient对象即可在JavaScript中直接调用服务器端的Java程序。
2.4开发工具
2.4.1Tomcat服务器
Tomcat是一个便捷的小型Web服务器,耗费资源少,故采用Tomcat作为服务器。
Tomcat是在SUN的JSWDK基础上发展起来的一个优秀的JSP服务器,是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用。
同样Tomcat也是一个开源软件,对系统开发成本的降低有很大帮助。
Tomcat不但支持Servlet,而且还提供了Web服务器的基本功能,处理HTML页面,可以和目前大部分的主流服务器一起工作,有着相当高的运行效率。
2.4.2MySQL数据库管理工具
从系统开发成本及数据量大小角度考虑,采用MySQL数据库管理系统来存储和管理系统数据。
MySQL是一种关联数据库管理系统,其将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。
这样不仅提高了速度而且提高了灵活性。
MySQL的SQL“结构化查询语言”,是用于访问数据库的最常用标准化语言。
MySQL软件采用了GNU通用公共许可证(GeneralPublicLicense,GPL)。
其具有体积小、速度快、总体拥有成本低等特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
2.4.3MyEclipse编程工具
MyEclipse本身就集成了Struts、String和Hibernate这三种框架插件,不需要再下载安装,而本系统开发恰好是采用SSH三层框架进行整合开发,故选择MyEclipse编程工具开发本系统。
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称My-Eclipse)是对Eclipse的扩展,利用它用户可以在数据库和J2EE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSP、CSS、JavaScript、SQL以及Hibernate等。
所以本系统的开发工具采用MyEclipse,提高开发效率。
2.5本章小结
本章首先介绍了B/S开发模式,然后介绍了UML相关知识及其在项目开发中的作用,接着介绍了系统使用的相关技术,最后对系统开发工具做了简单介绍。
3需求分析
在软件工程中,需求分析指的是在建立一个新的或修改一个现存的系统时描写系统的目的、范围、定义和功能所要做的工作。
需求分析是软件工程中的一个关键过程。
在这个过程中,系统分析员和软件工程师确定用户的需要[7]。
本章将从系统业务流程、设计目标、功能需求和性能需求四个方面进行描述。
3.1业务流程
以一家企业为例,通过调研发现,参与到系统核心业务流程中的人员主要有信息编辑员、信息审核员、普通用户三类。
核心业务流程如下:
1.信息编辑员划分新闻栏目;
2.信息编辑员在已存在的新闻栏目下撰写相应新闻;
3.信息审核员审核编辑员撰写的新闻;
4.审核通过就发布,反之打回重新修改;
5.新闻审核通过后印刷成公司宣传册;
6.信息编辑员发宣传册给客户,宣传公司以及产品,收集客户意见;
7.客户针对新闻反馈意见;
8.信息编辑员收集有用的意见归档。
核心业务流程如图3-1所示。
图3-1核心业务流程图
3.2设计目标
本系统主要面向的用户群体为中小型企业,需要实现的主要目标如下:
1.通过本系统可以使企业很方便的对信息进行发布和管理。
2.可以在本系统基础上进行二次开发,为其他企业定制门户网站。
3.可以通过新闻评论及评论回复达到企业与客户的简单在线交互目的,注册用户具有此功能。
4.用户浏览新闻时直接读取静态页面以提高访问速度。
5.采用模块开发增加系统可维护性和可扩展性。
6.栏目以目录结构树形式显示,结构清晰,便于用户获知栏目的上下级。
7.具有高度的稳定性和安全性。
3.3功能需求
功能需求是指系统必须提供的服务。
通过需求分析来划分系统必须具备的功能,即要分清系统中的角色,并且要理清每个角色拥有的功能权限[8]。
通过对系统进行分析,系统角色分为四类,分别为普通用户、系统管理员、信息编辑员、信息审核员,其中后三类角色是普通用户的泛化,拥有前台用户的所有功能。
普通用户可以浏览、搜索、评论企业新闻,也可对浏览的新闻进行评论或对评论进行回复,其中只有注册过的用户才能对新闻进行评论或回复。
普通用户用例图如图3-2所示。
图3-2普通用户用例图
在普通用户用例图中,以评论新闻用例为例给出用例描述,如表3-1所示。
表3-1评论新闻用例描述
用例编号
UC_addComments
用例名称
评论新闻
用例概述
普通用户对新闻进行评论,审核通过的评论最终显示在评论页
主参与者
普通用户
次要参与者
无
项目相关人
利益说明
项目相关人
利益
普通用户
能够成功添加评论
前置条件
用户是注册用户
后置条件
成功添加评论
成功保证
新闻管理人员在后台能够看到普通用户添加的评论
基本事件流
步骤
活动
1
普通用户点击新闻页面右下角的“评论”按钮,打开评论页面
2
普通用户输入用户名、密码、验证码以及评论内容
3
普通用户点击“提交”按钮,提示评论添加成功,待审核
4
用例终止
扩展事件流
3a
普通用户输入用户名、密码或者验证码错误,提交时提示相应的错误提示
3b
普通用户输入评论内容为空,提交时提示评论不能为空
子事件流
无
规则与约束
1.用户登录成功才能评论
2.评论内容不能为空
信息编辑员在登录系统后,可以添加、删除、修改新闻所属栏目,可以添加、修改、删除、查找、审核新闻,也可查看、审核、批量删除评论等。
信息编辑员用例