第24卷第7期甘肃科技”
vDz.24No.7
2008年4月GansuScienceandTechnologyApr.2008
基于MVC模式的Structs框架的研究与实现
张;波1”,韩’:珩2
(1.兰州交通大学光电技术与智能控制重点实验室,甘肃兰州730070;2.沈阳化工学院,.辽宁沈阳110142)、
摘要:在研究Struts框架的基础上详细探讨了Struts框架的三个主要部分之间的内在联系和采用的处理方式,并阐述了基于MVC的Web应用软件开发框架Struts的工作原理和体系结构,并通过教师论文管理系统的实例说明了Struts的基本用法。
关键词:MVC;Structs框架;论文信息管理系统
中图分类号:TP319
1’;。引言’.,
大学教育已经普及,大学教师的队伍也不断壮
大,随之而来的是教师论文数量的不断增多。如果
通过手工作业来进行论文库的管理工作,不仅工作
量大,而且容易出错,更不方便大家查阅,因此我们
需要为教师开发一套论文管理系统,以完善学校网
络信息管理系统,充分发挥校园网络的作用..
2MVC简介
MVC架构是随着SmalltalkLanguage语言的
发展提出的。MVC英文即Model—View—Con—
troller(模型一视图一控制器),即把一个应用的输
入、处理、输出流程按照Model、View、Controller的
方式进行分离。’
t‘本质上来说,MVC设计模式将应用分为以下三
个部分:.
模型:应用的核心.模型存储了一个应用所描
述的所有状态和数据。当某个部分的状态或数据发
生了重要的变化时,模型将更新所有与其相关的视
图。
控制器:呈现给用户用来进行操作的用户接口。
控制器根据用户的操作判断所要执行的业务逻辑,
关联模型和视图。
视图:用来向用户显示数据信息的用户接口。
一。“
j
3Struts框架结构
Struts是MVC的一种实现,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。
.。,模型通常由JavaBean或EJB组件实现,负责处理业务逻辑;,
视图包括一组JSP文件,这些文件主要由JSP标签或客户化标签构成,它简化了JSP页面的编码工作;、
.-.在Struts框架中控制器主要包括ActionServ-let类和Action类,.ActionServlet是Struts的核心部件,它接受用户的Http请求,根据配置信息将请求转发给适当的Action对象;Action类负责调用模型的方法,并帮助控制应用程序的流程;Struts包括Web’xml和Struts—confiff.xml两个配置文件,其中Web.xml是Web应用的发布描述文件,Struts一--config.xml是与Struts相关的特殊信息配置的描述文件。
4.系统的设计与实现
4.1系统功能概述,
:下面以开发Struts框架下的教师论文管理系统为例来进一步说明Struts框架。
..教师论文管理系统的主要作用是为不同用户管理论文提供方便,方便用户的查询、汇总及分析。教师论文管理系统的角色可以划分为两类:..4’系统管理员:负责管理学院、系所、教师用户和角色权限t
教师用户:发布、修改、删除、查看论文
…?这两类用户分别拥有自己的操作功能。根据操作划分模块,每一个操作模块都要实现自身的功能,并且在整个的操作流程中,负责承上启下。
4.2MVC模式详细设计
4.2.1Model设计
模型组件负责完成访问和操纵数据库,由Jay-
54甘肃,科技第24卷
aBean实现。在本系统中它包括系统库、论文库、专著库和学术库。模型层(数据库服务器:Oracle9i)的主要功能是数据库链接、生成数据集、数据库更新。
Struts框架使用模型组件的一大优点是如果模型组件的实现发生了变化,Action类不需要做任何变动j,’.一,。’
4.2..2view设计
教师论文管理信息系统视图包括教师管理论文、专著等页面和管理员管理系统、人员等页面。
数据显示:根据要求授权给控制器rCⅡ向模型[M]请求数据集,然后根据数据集显示出界面。操作结果显示:根据控制返回的数据决定显示的页面。一’例如当管理员管理系统界面接收到查询某位教师论文的命令后,把请求转到显示所有数据页面,显示满足查询条件的记录:
4.2.3Controller设计
本系统的控制层是通过校园网服务器(Inter-net/Intranet)实现对数据库更新的数据校验,它包括:系统管理:论文管理、科技专著管理、学术报告管理等。。j
控制器负责整个应用程序的流程控制,根据用户的请求类型以决定应用程序的操作,用于解释用户的鼠标和键盘输入,以通知模型或视图进行相应的更改j例如:控制器在当一个aspx页面初始化时将调用Pag—Init事件,当加载aspx页面时将调用Page_Load事件,当aspx页面从内存中被卸载时将调用Page_Unload事件。如果某个控件触发页面以使其被重新加载,则将调用ControlEvent事件。可以直接将模型角色实现在控制器调用的函数中,这种方法虽然实现了界面和代码(视图和控制器、模型)的分离,但没能实现控制器和模型的分离。根据MVC模式的思想,可以直接将与aspx文件相关联的后置代码拆分为模型和控制器,用专门的_二个类来处理数据,后置代码作为控制器仅仅负责转化用户的输入.?o:。?’
PrivateSubPage—Load(ByValsenderAsSystem.Objec:t。ByValeAsSystera.EventArgs)HandlesMyBase.Load‘
‘在此处放置初始化页的用户代码’
IfNOtIsPostBackThen
‘判断用户权限()
+.DimModulnameAsString
Modulname=”教师管理”
IfNotHasRight(Session.SessionID,Modul一。name)Then
Response.Redirect(”/hsgl/error.aspx”)EndIf卜
Try
‘’?.Binddeviceinfor().
Initdeviceinfor()
CatchexAsException
lblStatus.Text=”连接SQL数据库出现错误!<strong>”+eli.Message+”</strong>”
EndTry‘
一、EndIf‘,
EndSub一
将控制器和模型分离后,对任意模块的更改都不会引起其他模块的变更。当处理比较复杂的WebForm应用时,可以采用PageController和FrontControlle模式。
5结束语
Struts框架是一种非常优秀的基于MVC2的应用框架,广泛地运用于各种软件开发平台之中,本文对在教室论文管理信息系统中成功地运用Struts框架作了简要概述。Struts框架为程序员的程序设计提供了极大的方便,缩短了系统的开发周期。它是一个具有良好的可扩展性的框架,还能实现代码的重用,可使Web应用开发效率大大提高。
参考文献:
…’
。:4。。
[1]ErichGamma,RichardHelm,RalphJohnson等著,李英军等译.设计模式;可复用面向对象软件的基础
[M].北京:机械工业出版社,2000,9.r
[2]杨开英,刘榭.Struts框架研究与应用[J].微计算机应用,2005,26(2):158.一。[3]冀振燕.UML系统分析设计与应用案例[M].北京:人民邮电出版社,2003.6.