基于MVC模式的新闻发布系统的设计研究doc 71页.docx
- 文档编号:28232013
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:71
- 大小:47.17KB
基于MVC模式的新闻发布系统的设计研究doc 71页.docx
《基于MVC模式的新闻发布系统的设计研究doc 71页.docx》由会员分享,可在线阅读,更多相关《基于MVC模式的新闻发布系统的设计研究doc 71页.docx(71页珍藏版)》请在冰豆网上搜索。
基于MVC模式的新闻发布系统的设计研究doc71页
基于MVC模式的新闻发布系统的设计研究(doc71页)
更多企业学院:
...../Shop/
《中小企业管理全能版》
183套讲座+89700份资料
...../Shop/40.shtml
《总经理、高层管理》
49套讲座+16388份资料
...../Shop/38.shtml
《中层管理学院》
46套讲座+6020份资料
...../Shop/39.shtml
《国学智慧、易经》
46套讲座
...../Shop/41.shtml
《人力资源学院》
56套讲座+27123份资料
...../Shop/44.shtml
《各阶段员工培训学院》
77套讲座+324份资料
...../Shop/49.shtml
《员工管理企业学院》
67套讲座+8720份资料
...../Shop/42.shtml
《工厂生产管理学院》
52套讲座+13920份资料
...../Shop/43.shtml
《财务管理学院》
53套讲座+17945份资料
...../Shop/45.shtml
《销售经理学院》
56套讲座+14350份资料
...../Shop/46.shtml
《销售人员培训学院》
72套讲座+4879份资料
...../Shop/47.shtml
基于MVC模式的新闻发布系统的
设计与实现
作者姓名:
吴秋生专业班级:
2003070505
摘要:
新闻发布系统是公司内容管理系统的主要应用之一,是公司信息化建设和实现电子商务的重要途径。
它的基本思想是分离新闻信息的内容和表现形式,以期提高新闻发布效率。
本设计采用基于UML用例驱动对象建模的ICONIX项目管理方法,应用MVC三层设计模式,实现一个可以完成新闻栏目和新闻信息的添加、修改、删除以及新闻查看功能的新闻发布系统。
关键字:
ICONIX;MVC;Servlet;JavaBean;新闻发布
DesignandImplementationoftheNewsPublishingSystembasedonMVCmodel
Abstract:
ThenewspublishingsystemisthemainapplicationofContentManagementSysteminacompany,alsoitisanimportantapproachofthecompanies’informationconstructionandtherealizationofE-Commerce.Theseparationofthecontentsandviewsofinformationinthenewsisitisthebasicidea,soastoadvancetheefficiencyofthenews.ThroughapplyingtheprojectmanagementmethodsofICONIX,whichisbasedonusecasedrivenobjectmodelingwithUML,andMVCdesignpattern,thispaperimplementanewspublishingsystemwithfunctionsofadding,editing,deletingthecategoryandnews,andbrowsingnewsmessage.
Keywords:
ICONIX;MVC;Servlet;JavaBean;NewsPublishing
第1章前言1
第2章系统概述2
2.1项目管理方法2
2.1.1项目管理方法比较2
2.1.2项目管理方法选择2
2.2设计模式3
2.2.2MVC模式基本原理4
2.2.3MVCModel15
2.2.4MVCModel25
2.3小结6
第3章需求分析7
3.1需求描述7
3.2角色识别8
3.3用例识别8
3.4用例文档8
3.5用例驱动分析10
3.6小结12
第4章系统设计13
4.1系统总体设计13
4.1.1系统构架13
4.1.2发现系统类14
4.2视图层设计15
4.2.1前台设计15
4.2.2后台设计16
4.3模型层设计18
4.3.1前台显示和用户登录18
4.3.2新闻管理19
4.3.3栏目管理20
4.4控制层设计21
4.4.1用户登录21
4.4.2新闻管理21
4.4.3栏目管理22
4.5数据库设计23
4.5.1数据库需求分析23
4.5.2数据库概念设计23
4.5.3数据库逻辑设计24
4.5.4数据库表设计24
4.6数据库连接池设计25
4.6.1传统的数据库连接25
4.6.2数据库连接池的必要性25
4.6.3数据库连接池工作原理26
4.6.4具体设计27
4.7小结27
第5章系统实现28
5.1视图层实现28
5.1.1公共页面28
5.1.2前台实现29
5.1.3后台实现30
5.2模型层实现32
5.2.1新闻显示32
5.2.2新闻管理32
5.2.3栏目管理32
5.3控制层实现32
5.3.1用户登录33
5.3.2新闻管理33
5.3.3栏目管理34
5.4数据库实现34
5.4.1数据库表实现34
5.4.2数据库表关系35
5.5数据库连接池实现36
5.6小结36
第6章系统运行测试37
6.1系统测试环境37
6.1.1系统测试硬件环境37
6.1.2系统测试软件环境37
6.1.3Tomcat的配置37
6.2系统测试37
第7章系统评价与改进39
7.1系统评价39
7.2系统改进39
结论40
致谢41
参考文献42
附件43
第1章前言
伴随着网络的出现,网页逐渐融入人们的生活。
快速及时的新闻浏览,五彩缤纷的网上信息,使网络与人们的生活息息相关,于是世界上出现了第三媒体——Internet。
它打破了地域限制,真正使信息得以共享,改变了人们的工作和生活方式。
人们对信息的需求有了更新,更高的要求,而网页由于本身所具有的信息量大,传递快速,没有时空限制等特点恰好满足这种要求。
也正是由于网络实现网站的数据信息能够进行实时交互,保证网站数据的实时性。
随着Internet信息技术的高速发展,越来越多的企业想将自己企业的信息通过网络与全世界分享并最终实现电子商务,所以它们已经建立或计划建立自己的网站。
但是,如果为了建立和维护自己的网站而聘请专职的网络技术人员,其成本对于一个中小型企业来说实在是太高了。
对于上面这类企业来说,他们最需要的就是一个现成的可以自动发布信息的新闻发布系统,这样只要会打字,会上网就能利用新闻发布系统快速简洁地发布企业信息。
然而传统的信息发布方式已经不适应这个快速变化的信息时代,需要一个更高效,更简洁的方式进行信息发布。
内容管理系统正是基于这样一个目的而诞生的,它是企业信息化建设和电子政务的新宠。
它的基本思想是分离信息内容和表现形式,内容存储在数据库或独立的文件中,而表现形式存储在模版里。
当用户请求页面时,各部分联合生成一个标准的HTML页面;当信息修改时,用户只需在一个可视化的界面对信息内容进行修改。
大大缩短了信息的更新时间,提高了效率,并且简化了操作。
本设计便是基于内容管理思想的一个新闻发布系统,以下各章从系统概述、需求分析、系统设计、系统实现、系统运行测试和系统评价与改进依次展现系统开发过程。
第2章系统概述
本章主要介绍在系统开发过程中所采用的软件项目管理方法和系统设计模式。
2.1项目管理方法
2.1.1项目管理方法比较
目前,面向对象软件开发的项目管理方法主要有RUP、XP和ICONIX。
RUP(RationalUnifiedProcess)统一软件过程,是统一软件开发过程,强调文档、设计和代码的质量,采用动态适应变化的渐进式迭代周期,依靠需求和测试驱动,并积极鼓励客户参与的开发方法[1]。
RUP是一个基于UML和构件式构架的迭代递增型开发过程,更适用于大、中型软件开发项目。
XP极限编程(ExtremeProgramming,XP)是一门针对业务和软件开发的规则,它将编码和设计活动融为一体,弱化了构架的概念[1]。
要求先开发出系统中最重要的特性,迅速向客户提供所需功能,然后随着代码的演进通过重构来满足新的要求,从而使整个项目的风险降到最小。
XP是一种渐进式的原型化开发方法,反映的是以编程为中心,节省资源的观念。
它具有沟通高效,设计简单,反馈迅速等特点,是一种针对某些特定环境(需求变化快的小型开发团队)的具体过程实施模型和方法论。
ICONIX的规模大概在重量级的RationalUnifiedProcess(RUP)和轻量级的极限编程(XP)之间[2]。
和RUP一样,ICONIX过程也是用例驱动的,但不需要RUP使纪录延续到表中带来的大量开销;和XP一样,它相对较小,比较紧凑,但不像XP那样摒弃了分析和设计过程。
因此,有助于使用统一建模语言(UML),同时对需求进行跟踪。
该过程遵循了IvarJacobson的“用例驱动”的思想,能够获得有形、具体、易于理解的用例,可以使用这些用例来驱动开发工作。
该过程的3个基本原则是:
从用户需求向内进行;从问题域的关键抽象向外进行;从高级模型向下挖掘到详细设计[2]。
2.1.2项目管理方法选择
本系统选择的项目管理方法是ICONIX,也许它并不是用于本系统开发最好的项目管理方法,当然它也有很多缺点。
本系统选择它作为系统的软件项目管理方法,第一是因为系统本身较简单,采用ICONIX足以满足系统需求,并且由于时间限制,本人没有太多精力去学习更好的项目管理方法;第二是因为和别的软件方法不同的是,ICONIX更强调需求到设计之前的自然、有章可循的,同时也适合迭代的过渡,并且按照它自己的软件方法思想,它对UML符号集在可扩充的前提下作了一定的取舍。
本系统选择ICONIX项目管理方法,在系统设计和实现过程中,根据系统需要,对其进行了适当的取舍。
图2-1是ICONIX项目管理方法过程的总图。
图2-1ICONIX总图[2]
2.2设计模式
随着Web技术的发展,Web内容从一些静态页面发展到内容丰富的动态页面。
目前,用于生成动态网页较为流行的技术有Microsoft的ASP、Tex的PHP和Sun的JSP。
ASP只能工作在微软的IIS(InternetInformationServer)和PWS(PersonalWebServer)上及PHP模式,一些天生缺陷使得它们的使用受到了一定的制约。
而JSP是一种完全与平台无关的开发新技术,它集极高的运行效率,较短的开发周期,超强的扩展能力,完全开放的技术标准,自由的开发方式等众多完美特性于一身。
JSP+JavaBean+Servlet+JDBC+DBMS是一套能够实现动态网站的开发和维护的技术。
DBMS数据库用于数据存储,JDBC用于连接数据库并对数据库进行存储,Servlet用于处理过程控制,JavaBean用于封装业务逻辑,JSP用于页面显示部分。
而MVC正是这种设计模式代表。
2.2.2MVC模式基本原理
MVC(Model-View-Controller),即把一个应用的输入、处理、输出流程按照Model,View,Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层,其三层之间的关系和功能如图2-2“MVC组件类型关系和功能图”。
图2-2MVC组件类型关系和功能图[3]
MVC设计模式的典型流程[4]为:
首先Controller接收用户的请求,并决定应该调用哪个Model来进行处理,然后Model用业务逻辑来处理用户的请求并返回数据,最后Controller用相应的View格式化Model返回的数据,并通过表示层呈现给用户。
控制层(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。
划分控制层的作用也很明显,它清楚地告诉我们,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。
控制层并不做任何的数据处理。
例如,用户点击一个链接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。
因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
模型层(Model)就是业务流程/状态的处理以及业务规则的制定。
业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。
业务模型的设计可以说是MVC最主要的核心,必须能够满足大多数客户的需求,包括保证应用程序各组件的事务整合、维护并快速获取应用数据,支持事务工作流的协调以及在已有应用程序中集成新的应用组件等。
MVC并没有提供模型的设计方法,而只告诉我们应该组织管理这些模型,以便于模型的重构和提高重用性。
视图层(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML,XML和Applet。
随着应用的复杂性和规模性,界面的处理也变得具有挑战性。
一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。
业务流程的处理交予模型(Model)处理。
2.2.3MVCModel1
在MVC模式的Model1体系中,JSP页面独立响应请求并将出理结果返回客户,所有的数据存取都是由JavaBean来完成。
Model1体系十分适合简单应用需要,却不能满足复杂的大型应用程序的实现。
MVCModel1的体系结构如图2-3所示。
图2-3MVCModel1体系结构图[5]
2.2.4MVCModel2
MVC模式的Model2体系结构是一种把JSP与Servlet联合起来实现动态内容服务的方法。
它吸取了两种技术的优点,用JSP生成表达层的内容,让Servlet完成深层次的处理任务。
这是一种有代表性的方法,它清晰地分离了表达和内容,明确了角色的定义及开发者与网页设计者的分工。
本系统的设计模式选择的便是Model2。
MVCModel2的体系结构如图2-4所示。
图2-4MVCModel2体系结构图[5]
2.3小结
本章首先介绍了目前面向对象的软件开发中所常用的几种项目管理方法,并最终根据系统需要选择了ICONIX作为系统项目管理方法。
然后对MVC设计模式基本原理进行了详细阐述,并介绍了MVC的两种不同的模式Model1和Model2,并确定本系统的设计模式便是MVCModel2。
第3章需求分析
需求分析在软件开发过程中,具有举足轻重的地位,它具有决策性,方向性,策略性的作用。
需求分析的任务就是要解决“做什么”的问题,就是要全面地理解用户的各项需求,并准确地表达所接受的用户需求。
3.1需求描述
新闻发布系统功能需求主要包括:
前台显示功能和后台管理功能。
前台显示功能主要针对一般用户的,当一般用户在浏览新闻系统时,系统应该对新闻栏目和新闻条目的显示。
另外,前台显示功能还应包括一个提供给系统管理员登录后台的登录入口。
具体需求见表3-1系统前台显示需求表。
表3-1系统前台显示需求表
用户
要求实现功能
一般用户
浏览新闻栏目
一般用户
浏览新闻
系统管理员
登录后台系统
后台管理功能是针对系统管理员的,当系统管理员登录系统后台时,系统后台提供给系统管理员的功能应该有:
对新闻栏目的浏览、添加、修改和删除;对新闻条目的浏览、添加、修改和删除。
具体需求见表3-2系统后台管理需求表。
表3-2系统后台管理需求表
用户
要求实现功能
系统管理员
浏览新闻栏目
系统管理员
添加新闻栏目
系统管理员
修改新闻栏目
系统管理员
删除新闻栏目
系统管理员
浏览新闻
系统管理员
修改新闻
系统管理员
添加新闻
系统管理员
删除新闻
3.2角色识别
角色识别的任务是找到所有可能与系统发生交互行为的外部实体、对象和系统。
他们的行为不受系统控制,但是可以提供输入信息。
从系统描述可知,在前台显示模块中,系统主要对一般用户的浏览需求和管理员的登录需求做出响应;而在后台管理系统中,系统管理员可以对新闻栏目及新闻进行浏览、添加、修改和删除。
所以本系统应包括两个角色:
一般用户和系统管理员用户。
而事实上这些人对于系统来说都是用户,只是当用户登录到后台便成了管理员而已。
因此,系统角色可以统一为:
用户。
3.3用例识别
在UML文档中,用例(即UseCase)的定义是:
在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述[6]。
用例识别的目标是在需求描述和系统角色识别的基础上,识别出角色相映的用例,从而可以得出系统的用例模型,如图3-1是“系统用例模型图”。
图3-1系统用例模型图
3.4用例文档
用例文档主要为了描述出用例的详细业务流程,本系统主要包括以下用例文档:
(1)前台显示用例文档:
基本流程:
当用户在前台浏览新闻系统时,系统默认显示给用户的是所有栏目和所有新闻条目(每页显示8条新闻,一页显示不完可以分页显示)。
当用户点击某个栏目时,系统显示相应的新闻条目。
分支流程:
如果某个栏目下没有任何新闻,系统将显示一条信息,以指出该栏目没有新闻可以显示。
(2)登录入口用例文档:
基本流程:
用户在前台显示页面提供的登录后台系统的登录入口中输入用户信息,系统根据用户的登录信息进行检验,然后进入系统后台管理系统。
分支流程:
如果用户取消登录,则系统将信息重置,用户回到前台显示页面。
如果用户输入的信息不正确,系统将控制权交给“登录错误”页面,用户可以在此重新输入用户名和密码进行登录。
(3)系统后台管理用例文档:
基本流程:
用户在登录系统后台后,可以对新闻和栏目进行操作,根据用户的操作选择,进入扩展用例。
(4)新闻管理用例文档:
基本流程:
用户进入系统后便可浏览到新闻条目,在浏览过程中,用户可以修改和删除新闻。
用户在进行相应的操作后,系统存储新的信息,系统将控制权交给后台管理用例。
分支流程:
如果用户放弃对新闻的相应操作,则系统直接将控制权交给后台管理用例。
如果用户选择添加新闻,系统将控制权交给添加新闻用例。
(5)添加新闻用例文档:
基本流程:
用户填写新闻相关信息,并确定添加新闻时,系统将存储此新闻,并将控制权交给新闻管理用例。
分支流程:
如果用户放弃新闻添加,系统将直接将控制权交回给新闻管理用例。
(6)栏目管理用例文档:
基本流程:
用户在后台管理中选择栏目管理时,用户将浏览到系统已有栏目,并可对其进行修改删除操作,用户在进行相应操作后,系统会存储新的信息,控制权将回到栏目管理用例。
分支流程:
如果用户放弃相应操作,控制权将直接回到栏目管理用例。
如果用户选择添加栏目,控制权将交给添加栏目用例。
(7)添加栏目用例文档:
基本流程:
用户填写栏目相关信息,并确定添加栏目,系统将存储此栏目,并将控制权交给栏目管理用例。
分支流程:
如果用户放弃栏目添加,控制权将直接交回到栏目管理用例。
3.5用例驱动分析
通过以上对系统需求的分析已经定义了系统的角色和系统用例。
系统根据用例模型可以对用例进行细化,从而展现整个用例的活动顺序。
序列图则反映了用例各个类之间的具体调用过程[7],如图便是根据系统的角色分析和系统用例模型而得出的相应活动的顺序图如图3-2至图3-7。
图3-2前台活动顺序图
图3-3用户登录活动顺序图
图3-4后台新闻管理活动顺序图
图3-5添加新闻活动顺序图
图3-6栏目管理活动顺序图
图3-7添加栏目活动顺序图
3.6小结
本章从用户的角度,分析了系统的需求用例,画出了系统用例模型图,并得出了相应的用例文档;做出了用例驱动分析,并得出了相应的顺序图。
本章的工作为系统的设计打下基础。
第4章系统设计
根据上一章的需求用例分析,本章从先总体构架的角度对系统进行总体设计,然后根据MVC三层模式对系统进行详细设计,最后对系统数据库和数据库连接池进行了设计。
4.1系统总体设计
4.1.1系统构架
系统基于MVCModel2设计模式,设计出本系统自己的设计模式,在MVCModel2基础上加入数据库连接池模块层对数据库操作进行封装。
具体模式图如图4-1。
图4-1系统设计模式图
对于MVC设计模式,在本系统中具体实现方式是:
Model由JavaBean完成,View由JSP完成,Controller由Servlet完成,再加上数据库连接池专门负责数据库连接和管理。
本系统具体构架如图4-2。
图4-2系统构架图
4.1.2发现系统类
发现系统类是域建模的工作,其主要目的是根据系统需求用例及描述,找到代表与本新闻系统将要解决的问题有关的事务和概念的“对象”,即类[1]。
在本系统中,根据第3章中对系统需求用例的分析,可以总结出如下的需求集:
(1)系统应该分为前台和后台;
(2)系统前台应该可以显示新闻栏目和新闻以及用于管理员登录系统后台的登录界面;
(3)一般用户应该可以在前台自由浏览新闻,包括选择性地浏览新闻即先选择新闻栏目再浏览新闻栏目下的新闻条目;用户在浏览新闻时,系统应该可以将显示给用户一个包含新闻具体内容的HTML文件;
(4)系统管理员应该可以登录到系统后台;
(5)系统管理员应该可以对新闻栏目和新闻进行查看、修改、删除和添加操作。
系统在添加新闻时,应该可以将添加的新闻保存为一个HTML文件。
由以上需求集进一步分析可知:
(1)词“系统”太模糊,不能成为一个对象的名称;同样,“前台”和“后台”为系统的两个不同的区域,亦不能成为对象名称;
(2)“新闻栏目”和“新闻”为系统的两个主要内容,所以应该分别作为一个类,而新闻栏目和新闻的显示需要管理类进行管理,系统管理员要对栏目和新闻进行查看、添加、修改和删除,也需要相应的管理类进行管理,所以,系统对于新闻栏目和新闻分别需要“栏目管理类”和“新闻管理类”;
(3)要将添加的新闻保存为一个HTML文件,需要一个从表单中收集信息并将其转换为一个HTML文件的类;
(4)系统要保存信息,必须用到数据库,所以需要一个数据库连接的类;
(5)要将系统的各个功能执行成功,少不了相应的控制类。
因此,识别出系统主要的类:
新闻类(News)和新闻管理类(NewsMgr),栏目类(Category)和栏目管理类(CategoryMgr),数据库连接池的连接对象类(ConnectionObject)和连接池管理类(ConnectionPool)以及各个Servlet类。
4.2视图层设计
4.2.1前台设计
当一个用户浏览新闻系统时,首先进入系统前台界面。
如果把一个系统比作一个人,那么前台界面则是这个人的脸,因此系统的前台界面的设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于MVC模式的新闻发布系统的设计研究doc 71页 基于 MVC 模式 新闻 发布 系统 设计 研究 doc 71