




已阅读5页,还剩64页未读, 继续免费阅读
(计算机应用技术专业论文)基于mvc的struts框架的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学硕士学位论文 摘要 随着i n t e m e t 的普及和发展,越来越多的企业采用基于w e b 模式的系统作为 企业信息发布、交换、管理、交易的平台。这种基于b r o w s e s e r v e r 结构的w e b 应用开发技术,能够降低企业开发成本,而且拥有可扩展性强、开发周期短等 优点,因而已成为当前企业应用系统开发的主流技术。然而传统的b r o w s e s e r v e r 项目开发中存在很多问题,由于没有好的软件设计模式和开发框架,在w e b 网 页中既包含有表示层的数据又包含有实现业务逻辑的程序代码,h t m l 标记和 程序代码混杂在一起,因而很难分离出单独的业务模型。这使得维护系统非常 困难,很难满足用户不断增长的变化性需求。 本文结合“基于w e b 模式的中长燃资产管理信息系统 的开发,对m v c 设计模式和s t r u t s 框架展开了研究。深入地研究了如何采用s t r u t s 框架技术,如 何优化w e b 应用软件架构以及如何利用代码生成工具等来解决目前w e b 开发中 存在的问题。 为了达到课题研究的目的,本文首先详细剖析了m v c 设计模式和s t r u t s 框 架的工作原理。然后深入分析了s t r u t s 框架中存在的不足,并针对不足给出了改 进的方案。最后,通过描述“中长燃资产管理信息系统 的概要设计、详细设 计和系统的实现,阐述了如何应用s t r u t s 框架以及本文的研究成果来构建基于 w 曲的管理信息系统。 本文重点阐述的是中长燃资产管理信息系统概要设计、详细设计、编码实 现以及实现系统的关键技术等,较充分地说明m v c 设计模式以及s t r u t s 框架的 技术思想。通过实践证明,基于m v c 模式的s t r u t s 框架是一种比较优秀的w e b 应用开发框架,能有效地协作开发者实现“分而治之的设计思想,并能较大 地提高应用软件系统的开发效率。 关键词:设计模式,m v c 框架,s t r u t s ,w e b 系统 武汉理工大学硕士学位论文 a b s t r a c t w i t ht h ep o p u l a r i z a t i o na n dd e v e l o p m e n to ft h ei n t e r a c t ,m o r ea n dm o r e e n t e r p r i s e sh a v eb e g u nt ou s et h es y s t e m sb a s e do nw e bd e s i g na sp l a t f o r m so f i n f o r m a t i o nd i s s e m i n a t i o n ,e x c h a n g e ,m a n a g e m e n ta n dt r a n s a c t i o n t h i sk i n do fw e b a p p l i c a t i o nd e v e l o p m e n tt e c h n o l o g y , b a s e do nb r o w s e s e r v e ra r c h i t e c t u r e ,c a nh e l p e n t e r p r i s e sr e d u c ed e v e l o p m e n tc o s t s ,a n dw i mt h ea d v a n t a g e so fs t r o n ge x p a n s i b i l i t y a n ds h o r td e v e l o p m e n tc y c l e ,i th a sb e c o m et h em a i n s t r e a mt e c h n o l o g yo ft h ec u r r e n t e n t e r p r i s ea p p l i c a t i o ns y s t e md e v e l o p m e n t h o w e v e r , t h e r ea r es t i l lm a n yp r o b l e m si n t h et r a d i t i o n a lb r o w s e s e r v e rp r o j e c td e v e l o p m e n t d u et ol a c ko fe x c e l l e n ts o f t w a r e d e s i g np a t t e r n sa n dd e v e l o p m e n tf r a m e w o r k s ,t h ew e bp a g e sc o n t a i nb o t ht h ed a t af o r p r e s e n t a t i o nl a y e ra n dt h ep r o c e d u r ec o d e sf o rc a r r y i n go u tt h eb u s i n e s sl o g i c a sa r e s u l t ,h t m lt a g sa r em i x e du pw i t ht h ep r o c e d u r ec o d e s ,w h i c hm a k e s i td i f f i c u l tt o s e p a r a t eb u s i n e s sm o d e l sa p a r t i ti st h e r e f o r eq u i t ed i f f i c u l tt om a i n t a i ns y s t e m sa n d t os a t i s f yc u s t o m e r s e v e r - g r o w i n ga n dc h a n g i n gd e m a n d s t h ep r e s e n tt h e s i s ,b a s e do nt h e d e v e l o p m e n to f a s s e tm a n a g e m e n t i n f o r m a t i o ns y s t e mo fz h o n g c h a n g r a n ( b a s e do nw e bd e s i g n ) ”,l a u n c h e sr e s e a r c h a b o u tt h em v c d e s i g np a t t e r na n dt h es t r u t sf r a m e w o r k i tc a r r i e so u td e e pr e s e a r c h o nh o wt ou s et h et e c h n o l o g yo fs t r u t sf r a m e w o r k ,h o wt oo p t i m i z et h ew e b a p p l i c a t i o ns o f t w a r ef r a m e w o r ka n dh o wt ou s et h ec o d eg e n e r a t i o nt o o l st os o l v et h e c u r r e n t l ye x i s t i n gp r o b l e m si nt h ew e bd e v e l o p m e n t i no r d e rt oa c h i e v et h ep u r p o s eo fr e s e a r c h ,t h et h e s i sf i r s t l ya n a l y z e si nd e t a i l t h ew o r k i n gp r i n c i p l e so fm v cd e s i g np a t t e r na n ds t r u t sf r a m e w o r k t h e n , i t a n a l y z e st h o r o u g h l yt h ed e f i c i e n c i e so ft h es t r u t sf r a m e w o r ka n dp u t sf o r w a r d st h e i m p r o v i n gm e t h o d s f i n a l l y , b yd e s c r i b i n gt h ep r e l i m i n a r ya n dd e t a i l e dd e s i g no f a s s e tm a n a g e m e n ti n f o r m a t i o ns y s t e mo fz h o n g c h a n g r a n a n dt h er e a l i z a t i o no f t h es y s t e m ,i te x p l a i n sh o wt ou s et h es t r u t sf r a m e w o r ka n dt h er e s e a r c hr e s u l t so f t h ec u r r e n tt h e s i st ob u i l dw e b - b a s e dm a n a g e m e n ti n f o r m a t i o ns y s t e m t h et h e s i sm a i n l yf o c u s e s0 1 1d e s c r i b i n gt h ep r e l i m i n a r ya n dd e t a i l e dd e s i g n , i i 武汉理工大学硕士学位论文 c o d er e a l i z a t i o na n dt h ek e yt e c h n o l o g i e so fr e a l i z a t i o n s y s t e m i n a s s e t m a n a g e m e n ti n f o r m a t i o ns y s t e mo fz h o n g c h a n g r a n ,e x p l a i n sa d e q u a t e l yt h em v c d e s i g np a t t e r na n dt e c h n i c a lt h o u g h t so fs t r u t sf r a m e w o r k i ti sp r o v e dt h r o u g h p r a c t i c e st h a ts t r u t sf r a m e w o r kb a s e do nt h em v cm o d e li sar e l a t i v e l ye x c e l l e n t w e ba p p l i c a t i o nd e v e l o p m e n tf r a m e w o r k ,w h i c hc a nc o o p e r a t ee f f e c t i v e l yw i t h d e v e l o p e r st oa c h i e v et h ed e s i g ni d e ao f “d i v i d ea n dr u l e ,a n dg r e a t l ye b h a l l c e d e v e l o p m e n te f f i c i e n c yo ft h ea p p l i c a t i o ns o f t w a r es y s t e m k e y w o r d s :d e s i g np a t t e r n , m v cf r a m e w o r k ,s t r u t s ,w e bs y s t e m i i i 独创性声明 本人声明,所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 研究生签名: 王肇躯一日期二型星i l 上l 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部内容, 可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 研究生签名:盘导师签名: 陟五7 r 武汉理工大学硕士学位论文 1 1 研究背景 第l 章引言 目前,很多企事业单位管理信息系统的开发,因为考虑到跨平台、安全性 等原因,往往会选用j 2 e e 平台。为了进一步提高软件系统的可移植性、可扩展 性以及可维护性,应用软件系统采用什么样的设计模式和结构显得至关重要。 近年来,随着网络技术的迅速发展和j 2 e e 的广泛应用,基于b s 的多层 w e b 体系结构逐渐发展成熟起来,多层w e b 应用的开发已成为当前发展的主流。 然而由于j 2 e e 本身固有的缺陷,使得开发这样的应用仍然存在许多困难【1 1 。在 多层w e b 体系结构的设计中,普遍存在软件可重用程度低、维护工作繁琐、应 变能力较弱等不足。同时,多层w e b 应用软件需要面对复杂的网络环境、多样 化的应用需求、灵活的业务模式、复杂的业务流程、众多的组织机构及层次、 角色分工多等问题,在业务和技术上也是复杂多变的。因此,采用何种设计模 式以实现简单高效的应用软件升级、维护和扩展,以及把开发人员从繁琐的工 作中解脱出来,成为当今我们首要研究的问题。同时,我们还要充分考虑到多 层w e b 应用开发的核心问题,在实际开发中,各层之间既需要密切配合又要尽 可能地使各层的开发相对独立,减少各层之间的耦合程度,避免开发人员的相 互制约2 1 。 鉴于以上所分析的种种原因,m v c ( m o d e l v i e w c o n t r o l l e r ,模型视图 控制器) 设计模式被提出并且出现了许多相应的实现框架。m v c 是一个经典的 设计模式,源于传统的面向对象语言s m a l l t a l k 8 0 。利用m v c 设计模式开发 w e b 应用,可以将表示逻辑和业务逻辑分离,构建可复用的软件系统架构,同 时简化软件开发,提高软件性能和可维护性,以达到提高软件质量的目的【3 】。 s t r u t s 是一个较优秀的基于j 2 e e 平台的实现m v c 设计模式的框架。s t r u t s 采用大多数开发者熟知的j a v a b e a n 、j s p 、s e r v l e t 等标准技术,对m v c 设计模 式的三个部分提供了对应的实现组件【4 】。s t r u t s 规定了应用的体系结构,为应用 系统提供了一个良好的软件架构,解决了由于应用复杂性而在软件开发过程中 所带来的各种问题,目前在国内外许多w e b 应用开发项目中得到了较为广泛的 武汉理工大学硕士学位论文 应用: 本文以“基于w e b 模式的中长燃资产管理信息系统”项目的开发工作为背 景,探讨w e b 应用开发中的m v c 设计模式和s t r u t s 框架的工作原理以及s t r u t s 框架的应用。 1 2 研究和应用现状 s t r u t s 实现了m v c 设计模式,能够很好地帮助j a v a 开发者利用j 2 s e 开发 w e b 应用。和其他的j a v a 框架一样,s t r u t s 也是面向对象设计的,成功地实现 了m v c 模式“分离显示逻辑和业务逻辑”的理念。基于s t r u t s 构架的w e b 应用软 件基本上符合j s pm o d e l 2 的设计标准,可以说是m v c 设计模式的一种实现【5 j 。 s t r u t s 的主要架构设计和开发者是c r a i gr m c c l a n a h a n 。自2 0 0 1 年6 月 s t r u t s l 0 发布以来,s t r u t s 作为世界上第一个发布的m v c 框架,经过六年多的 发展,s t r u t s l 已经成为了一个较成熟的框架,不管是稳定性还是可靠性都得到 了较广泛的证明。s t r u t s 拥有各类应用实践者,在一定程度上成为了当前发展的 主流。然而随着s 砸n g 、w e b w o r k 、j s f 等新型框架快速成长起来,s t r u t s 长达 六年的主流地位受到了挑战,甚至在某些技术特性上已显现出落后于这些新兴 的m v c 框架【5 】。i t 行业的技术革新是永不停息的,随着拥有众多新技术的新框 架更加广泛地应用于实际开发中,s t r u t s l 的局限性也越来越多地暴露出来了。 s t r u t s 2 吸收s t r u t s l 和w e b w o r k 的部分优点,建立起了一个兼容w e b w o r k 和 s t r u t s l 的新型m v c 框架,弥补了s t r u t s l 框架的不足。 然而s t r u t s l 足以支撑中小型应用软件系统的开发,由于种种因素的影响, 软件项目开发团队的领导层更愿意利用现有的s t r u t s 框架进行软件开发,达到快 速开发的目的。相反,采用其他m v c 框架由于人力优势相对匮乏以及框架不够 稳定,反而会使项目开发存在一定的风险。如果说单用s t r u t s 无法完成需求的话, 可以与现在流行的h i b e r n a t e ,s p r i n g 等框架整合在一起,使功能变得更强大。 s t r u t s + h i b e r n a t e 整合框架也是现在中小型i t 企业软件开发所采用的主流搭配。 所以从某种角度上讲,s t r u t s 的主流优势还将持续。 1 3 主要研究内容 论文的题目是“基于m v c 的s t r u t s 框架的研究与应用”,本文将首先剖 2 武汉理工大学硕士学位论文 析m v c 设计模式以及s t r u t s 框架的工作原理,然后将其应用于“中长燃资产管 理信息系统”的设计与开发中。本文主要完成了以下几方面的研究工作: ( 1 ) 对m v c 设计模式进行了深入的研究。通过对w e b 应用开发常用模式的 分析与对比,深刻剖析了该模式的模型、视图、控制器三部分在构成w e b 应用 软件框架中所起的作用,并总结出了使用此模式所存在的优势与不足。 ( 2 ) s t r u t s 框架的研究。s t r u t s 是实现m v c 模式的一个较优秀的应用框架, 本文对该框架的整体结构及处理流程进行了深入分析和研究,讨论了s t r u t s 框架 的关键技术,最后也讨论了现今流行的实现m v c 设计模式的开发框架。 ( 3 ) s t r u t s 框架的不足与改进办法。基于对s t r u t s 框架的深入研究,从w e b 多层结构和s t r u t s 框架本身出发分析了s t r u t s 框架的不足,并给出了合理的改进 方案。 ( 4 ) 实际应用的研究,本文的重点。研究了如何使用s t r u t s 框架技术和w e b 应用软件的开发方法,实现基于w e b 模式的中长燃资产管理信息系统。用实例 说明了s t r u t s 框架的应用,阐述了视图、模型和控制器的实现方法,并总结了在 系统实现时使用的关键技术。 1 4 论文结构 本文分为三大部分: + 第一部分:即第一章,简要地阐述了本文所研究课题的研究背景以及研究 应用现状,同时说明了本文研究的主要内容。 第二部分:即第二章、第三章和第四章,介绍了课题所涉及的主要理论知 识。分析了m v c 设计模式及其组成部分,各部分实现的功能和s t r u t s 框架的技 术概念、特点以及在w e b 应用开发中的应用结构,为应用软件的开发打下了理 论基础。 第三部分:即第五章、第六章和第七章,介绍了如何搭建s t r u t s 框架的开发 环境;分概要设计、详细设计和实现三个部分阐述了如何将s t r u t s 框架技术和研 究成果应用于“基于w e b 模式的中长燃资产管理信息系统”的设计和开发之中。 3 武汉理工大学硕士学位论文 第2 章m v c 设计模式 m v c 设计模式是x e r o xp a r c 在八十年代发明的一种软件设计模式。至今 已被广泛地使用,并被推荐为s u n 公司j 2 e e 平台的设计模式。它为开发交互式 应用系统提供了一个优秀的设计模式,受到越来越多开发者的欢迎。本章将重 点分析m v c 模式的结构、适用范围及优缺点。 2 1 设计模式 利用设计模式可方便地重用成功的设计和软件结构。把已经证实的技术表 示为设计模式,使它们更加容易地被新系统的开发者所采用。设计模式,简单 地说,就是一些面向对象的软件开发设计的经验总结。在面向对象系统的设计 中,设计模式通常描述了一组相互紧密作用的类与对象。可以这么认为,类及 其生成的对象是构成面向对象系统的最基本元素。采用设计方法组合这些元素, 得到构成面向对象系统的构件,同时,这些构件的设计方法在经过不断的改进 和完善后逐渐成型,成为构成面向对象系统的基本设计参考,即所谓的设计模 式。开发人员一般采用设计模式来抽象和总结系统构件的设计方法,同时将它 应用于新的系统构件的设计中。使用类和对象,使开发人员在元素( 类和对象) 的层次上实现了重用性;而使用设计模式,则是在系统构件的层次上实现了重 用性【6 1 。 通常情况下,一个模式有以下四个基本成分n 1 ) 模式名称( p a t t e r nn a m e ) 模式名称由一两个词组成,用来描述模式的问题、解决方案和效果。模式 名称的产生可以使我们在更高的抽象层次上与其他人交流设计思想及设计结 果。 2 ) 问题( p r o b l e m ) 问题告诉我们何时使用设计模式,并描述了设计问题以及问题存在的背景。 它可描述解决方案必须满足的需求,必须考虑的约束以及必须具有的期望特性。 3 1 解决方案( s o l u t i o n ) 4 武汉理工大学硕士学位论文 解决方案描述设计的基本要素,它们的关系、各自的任务以及相互之间的 合作。模式就像一个在不同环境下使用的模板,因此解决方案并不是针对某一 个特殊问题而给出的,而是提供设计问题的抽象描述和怎样用一个具有一般意 义的元素组合( 类或对象组合) 来解决这个问题。 4 ) 后果( c o n s e q u e n c e s ) 后果描述应用设计模式后的结果和权衡。比较与其他设计方法的异同,得 出应用设计模式的代价和优点。后果还包括对系统灵活性、可扩充性及可移植 性的影响,明确说明这些后果有助于理解和评价设计模式【8 1 。 设计模式的作用可总结为: 1 ) 重用设计,它比简单的重用代码更有意义,通过重用已经公认的设计,我 们能够在解决问题时取得优势,从而避免重蹈前人覆辙。我们可以从学习他人 的经验中获益,用不着为那些总是会重复出现的问题再次设计解决方案【1 1 1 。 2 ) 为设计提供共同的术语,方便程序员之间的交流,而且也使得开发文档的 编写变得清晰明白。 3 ) 应用设计模式可以让重构系统变得容易,可确保开发正确的代码,并降低 代码的出错率。 4 ) 可以减短开发周期,提高软件开发效率。 2 2 传统的j s p 设计模式 随着网络技术的不断发展,当前企业应用软件开发采用w e b 模式已成为主 流。应用j 2 e e 技术平台开发w e b 应用软件,在j s p 与s e r v l e t 技术发展的过程 中,出现了两种经典的j s p 设计模式_ j s pm o d e ll 和j s pm o d e l 2 1 9 1 。 2 2 1j s pm o d e ll :j s p + j a v a b e a i l 在j s p 技术发展的初期,鉴于其方便快速开发的优点,很快就成为了创建 w e b 应用的热门技术之一。在j s p 页面中可以很容易地同时实现内容的显示, 业务逻辑的编写以及流程的控制,从而快速地完成应用软件的开发。最初很多 的j a v aw e b 应用软件全部是由j s p 页面构成的,这种以j s p 为中心的开发模型 被称为m o d e l1 ( 设计模式1 ) ,其体系结构如图2 1 所示。 5 武汉理工大学硕士学位论文 l b r e q u e s t j s p r o 4 ,、iw e r r e s p o n s e 一 3 a p l i c a t i o ns e r v e r 图2 1j s p m o d e l1 体系结构 e n t e r p r i s es e r v e r d a t as o u r s e 在j s pm o d e ll 中,j s p 页面负责接收处理客户端w e b 浏览器发送的请求, 并在处理后直接返回响应结果。其间一般会借助j a v a b e a n 类等手段处理复杂的 业务逻辑,例如:连接数据库,对存取的数据进行加工处理等。m o d e l1 模式的 最大优势是实现起来比较简单,适合快速开发小规模的软件项目,但是从大的 软件工程的角度来看,其局限性也是非常明显的。 在这种设计模式中,虽然将一部分业务逻辑放到了j a v a b e a n 中实现,在一 定程度上实现了业务代码的分离,但是j s p 页面本身同时充当了v i e w 和 c o n t r o l l e r 两种角色,控制逻辑和表示层逻辑混杂在一起,实现大量控制逻辑及 表示逻辑的j a v a 代码使得j s p 页面变得非常的臃肿,前端页面的设计师稍有不 慎,极有可能破坏相关逻辑代码【9 】。 由于分工不够明确,当相应的控制逻辑变得越来越复杂时,这种模式必然 会导致代码的可重用性及可扩展性的下降。 2 2 2j s pm o d e l2 :j s p + j a v a b e a n + s e r v l e t 在m o d e l2 中采用s e r v l e t 作为控制器,负责接收客户端w e b 浏览器发送来 的所有请求,并依据处理的不同结果,转发到对应的j s p 页面实现在浏览器客 6 武汉理工大学硕士学位论文 户端的显示。通常在s e r v l e t 中只包含了控制逻辑和一些简单的处理逻辑,更加 复杂的业务处理逻辑则借助特定的j a v a b e a n 来实现,其体系结构如图2 2 所示【9 1 。 图2 - 2j s pm o d e l2 体系结构 m o d a l2 将显示逻辑和业务逻辑明显地分离开,各自独立实现。如图2 2 所 示,显示逻辑由j s p 来实现,业务逻辑由j a v a b e a n 来实现,他们之间的相互联 系由独立的控制器来担任的。控制器采用s c r v l e t 来实现。m o d e l2 实际上实现了 基于组件的开发,在整个软件开发过程中实现了清晰的逻辑划分,能够有效的 区分不同的角色,这就更适合于大规模系统的开发和管理。 该架构的优势是十分显著的。首先,它将计算和显示清楚地分开了,在j s p 页面上没有出现处理过程,在s e r v l e t 或商业逻辑中没有数据格式。这种分离的 另一个好处是j a v a 程序员可以专注于s c r v l e t 代码,h t m l 编写者可以专注于 j s p 。第二点,控制器s e r v l e t 做页面上所有的决定。在页面和逻辑中不会出现任 何决策,这就提高了一个应用软件的性能和可扩展性,因为请求可以被导向架 构中不同的组件,甚至是不同的服务器。 7 武汉理工大学硕士学位论文 2 3 经典的m v c 设计模式 m v c 并不是j a v a 语言所特有的设计思想,也并不是w e b 应用所特有的思 想,它是所有面向对象程序设计语言都应该遵守的规范。m v c 是 m o d e l v i e w c o n t r o l l 的简称,即模型一视图一控制器。它强制性地把应用软件 的输入、处理和输出分开。m v c 把应用软件分为三个核心模块:模型、视图和 控制器,它们分别担负不同的任务。图2 3 显示了这几个模块各自的功能以及它 们相互的关系【4 j 。 一事件 图2 3m v c 组件类型的关系和原理 2 3 1m v c 设计模式的原理 1 ) 模型( m o d e l ) :业务数据和业务逻辑的表示组件 模型是应用软件的主体部分。它表示业务数据或者业务逻辑。它采用面向 对象的方法,将问题领域中的对象抽象为应用软件对象。在这些抽象的对象中 封装了对象的属性和这些对象所隐含的处理逻辑。业务流程的处理过程对其它 层来说是黑箱操作,模型接受视图请求,并返回最终的处理结果。 在m v c 的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中 8 武汉理工大学硕士学位论文 立的,就是说模型与数据格式无关,这样一个模型能为多个裢翌提供数据。由 于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重 复性,提高了系统设计的可重用性。 2 ) 视图( v i e w ) :用户界面组件 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接 受用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查 询业务状态,但不能改变模型。 一个模型可以有多个视图,而一个视图理论上也可以与不同的模型关联起 来。对于视图而言,模型就是可重用的代码。视图用来显示模型的数据,并决 定模型以什么样的方式显示给用户。模型在状态发生改变时要及时通知视图, 以便所有对应的视图都能够得到及时的更新。 3 ) 控制器( c o n t r o l l e r ) - 处理模型和视图之同的数据流和请求导向的组件 控制器接受用户的输入并调用模型和视图去完成用户的需求。当w e b 用户 单击w e b 页面中的提交按钮来发送h t m l 表单时,控制器接收请求并调用相应 的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。 综上所述,模型是对象的内在业务处理,视图是模型的外在表现形式。一 个模型可以对应一个或者多个视图,同样,一个视图也可以对应多个模型,视 图还具有与外界交互的功能。控制器是模型与视图联系的纽带,控制器提取通 过视图传递过来的外部信息并转化成相应事件,然后由控制器对相关模型进行 更新,同样,模型的更新与修改也通过控制器通知视图,保持视图与模型的一 致性【1 0 1 。 2 3 2m v c 设计模式的优缺点 通过以上分析,使用m v c 模式进行系统设计具有以下优点: 1 ) 设计清晰。用模块中的公用方法来操作它的数据和状态,很容易理解如何 来控制模块的行为。当设计一个应用时,这种方式将使整个程序更加容易执行 和维护。 2 ) 多个视图可以对应一个模型,提高代码的可重用性。按m v c 设计模式, 一个模型对应多个视图,可以减少代码的复制及维护量,一旦模型发生改变, 也易于维护。 3 ) 模型返回的数据与显示逻辑分离,使得用户界面更加灵活。模型数据可以 9 武汉理工大学硕士学位论文 应用任何的显示技术,例如,使习j s p 页面、v e l o c i t y 模板或者直接产生e x c e l 文档等,这就使得程序可以使用更加清晰友好的用户界面。如果要增加新类型 的用户界面,只需要改动相应的视图和控制器即可,而模型则无需发生改动。 4 ) 应用被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性,增 强了系统的可维护性。 5 ) 控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起, 完成不同的请求。因此,控制层还是包含了用户请求权限控制的概念。 6 ) m v c 更符合软件工程化管理的精神。不同的层各司其职,每一层的组件 具有相同的特征,有利于通过工程化和工具化产生并管理程序代码。 m v c 就像一把双刃剑,有好的一面也必然有不足之处,作为一个优秀的开 发设计模式也有自身的一些缺点,主要的不足表现在以下几个方面: 1 ) 理解困难,耗费时间。由于它没有明确的定义,所以完全理解m v c 并不 是很容易的。使用m v c 需要精心的计划,由于它的内部原理比较复杂,所以不 得不花费相当可观的时间去考虑如何将m v c 运用到应用软件中。 2 ) 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循m v c ,使 模型、视图与控制器分离,会增加结构的复杂性,也给调试应用软件带来了一 定的困难,并可能缠上过多的更新操作而降低运行效率。 3 ) m v c 并不适合小型应用软件,花费大量时间将m v c 应用到规模并不是 很大的应用软件通常会得不偿失。 综上所述,m v c 是构建软件非常好的设计模式。在开发一个应用软件时, 如果开发者能够接受m v c 设计模式,并且有能力应付它所带来的额外工作和复 杂性,m v c 设计模式将会使这个应用软件在健壮性、代码重用和后期维护方面 上一个新的台阶。它使软件结构更加清晰,并增强代码稳定性,增加了应用的 可扩展性,同时使得应用更加强壮,更加有弹性,更加个性化【l o 】。 1 0 武汉理工大学硕士学位论文 第3 章s t r u t s 框架 为了将m v c 设计模式有效地应用于j 2 e e 应用开发之中,在a p a c h e 软件基 金资助下,j a k a r t a 项目计划被成功实施,m v c 应用开发框架s 咖t s 诞生了。 本章将详细地分析s t r u t s 框架的体系结构、处理流程及基本组件,为后续章 节研究如何将s t r u t s 框架应用到w e b 开发中作好技术理论准备。 3 1 框架 s t r u t s 通常也被称为是一种w e b 应用开发的框架( f r a m e w o r k ) ,那么框架 ( f r a m e w o r k ) 的确切含义是什么呢? 如果将早期的软件开发方式比喻为传统手 工业生产方式的话,那么基于软件开发框架的开发方式则是大型现代化工厂生 产方式的体现。虽然二者都能够制作出产品,但是在生产效率及产品质量的保 证上显然会有巨大的差异。 正如汽车生产厂家在制造一辆汽车时,设计者的主要精力并不是用于重复 地制造相同的车轮、相同的方向盘而是在利用现成的组件组装出一辆辆不同的 汽车。同样,开发人员也可以利用软件框架中提供的组件库,按照既定的组装 方式将不同的组件应用在软件产品的各个环节,最终开发出一个完整的、高质 量的软件产品。汽车设计者可以将原有的车轮进行改造,同理,软件开发人员 可以在现有组件的基础上进行扩展和改进,这实际上也充分地实现了软件开发 的可扩展性例。 组件复用是面向对象编程思想的结晶,而在软件框架的基础上进行开发可 以最大限度的实现组件的复用。在大型、多层次的软件开发项目中,开发和使 用具有可重用性、可扩展性、经过良好测试的软件组件,可以使开发者从大量 繁琐的代码工作中解脱出来,专注于软件设计和业务逻辑的实现【l 。 通常将被验证为有效的、相同类型问题的解决方案进行抽象,即可提取形 成一个应用软件框架( f r a m e w o r k ) 。框架提供了建立复杂系统的强有力的工具, 则使用框架有以下的优点: 1 1 ) 可以复用框架的体系结构和代码,减少了编码、调试和测试的工作量。 2 ) 使用户能够专注于业务逻辑,不需要花大量时间去做大量的基础开发工作。 武汉理工大学硕士学位论文 3 ) 为组合软件开发奠定了基础。设计良好的框架将允许第三方软件企业提 供部分或者完整组件供用户或系统集成商装配。 3 2s t r u t s 框架概述 s t r u t s 框架由一组相互协作的类( 组件) 、s e r l v e t 以及j s pt a gl i b 组成。基于 s t r u t s 构架的w 曲应用软件基本上符合j s pm o d e l 2 的设计标准,可以说是m v c 设计模式的一种变化类型【l 引。根据上面对f r a m e w o r k 的描述,我们很容易理解 为什么说s t r u t s 是一个w e bf r a m w o r k ,s t r u t s 不仅仅包含了丰富的标记库,而 且包含了大量的独立于该框架工作的实用程序类。s t r u t s 有其自己的控制器 ( c o n t r o l l e r ) ,同时整合了其他的一些技术来实现模型层( m o d e l ) 和视图层 ( v i e w ) 。在模型层,s t r u t s 可以很容易地与数据访问技术相结合,包括e j b ,j d b c 和o b j e c tr e l a t i o nb r i d g e 。在视图层,s t r u t s 能够与j s p ,v e l o c i t yt e m p l a t e s ,x s l 等等这些表示层组件或技术相结合【1 3 】。 3 3s t r u t s 的体系结构 s t r u t s 是m v c 的一种实现,其体系结构实现了m v c 设计模式的概念。s t r u t s 对m o d e l 、v i e w 和c o t r o l l e r 都提供了对应的实现组件,图3 1 中说明了s t r u t s 框架中模型一视图一控制器之间的具体关系【4 1 。 s e r v l e t j s p 容器 ls t r u t s - c o n f i g m l l t ( 模型) a c 做t i o 制n s 瀚e r v l e炒 j a v a b e a n e m w 曲 i , i 浏览器i + _ ,污 服务器 镊 t l。f ( 视图) 7 i j s p i u 图3 1s t r u t s 实现的m v c 框架 1 2 武汉理工大学硕士学位论文 1 1 视图( v i e w ) s t r u t s 中仍然采用j s p 作为主要的视图工具。在j s p 文件中没有业务逻辑, 也没有模型信息,只有标签,除了基本的j s t l 标记之外,s t r u t s 为了实现更纯 净的h t m l 代码,又设计了大量的标记来支持用户的开发,使得开发工作变得 更加方便和快捷。 2 1 ) 模型( m o d e l ) 模型表示应用软件的状态和业务逻辑。对于大型的应用,业务逻辑通常由 j a v a b e a n 或e j b 组件表示。对进入控制器的每个入口点来说,b e a n 的作用是存 储从视图获取的信息,同时被称为“动作类 ,一种j a v a 类则被指定为对表单输 入采取行动【1 4 】。动作类实现了业务逻辑。 3 ) 控制器( c o n t r o l l e r ) 控制器由a c t i o n s e r v l e t 类和a c t i o n 类来实现。a c t i o n s e r v l e t 类是s t r u t s 框架 中的核心组件。a c t i o n s e r v l c t 主要负责接收h t t p 请求信息,根据配置文件 s t u r t s c o n f i g x m l 的配置信息,将请求转发给适当的a c t i o n 对象。a c t i o n 类负责 调用模型的方法,更新模型的状态,并帮助控制应用软件的流程。对于小型简 单的应用,a c t i o n 类本身也可以完成一些实际的业务逻辑。对于大型应用,a c t i o n 类充当用户请求和业务逻辑处理之间的适配器,其功能就是将请求和业务逻辑 分开,a c t i o n 根据用户请求调用相关的业务逻辑组件【1 5 】。 3 4s t r u t s 的配置文件和基本组件 3 4 1s t r u t s 的配置文件 1 ) w e b x m l w e b x m l 文件对于配置任何j a v aw e b 应用都是必须的,是w e b 应用软件的 通用性文件,s t r u t s 有几项专门的配置在其中进行,具体介绍如下。 ( 1 ) 配置a c t i o n s e r v l e t 配置a c t i o n s e r v l c t 是创建s t r u t s 应用软件的第一步,也是最重要的一步。作 为s t r u t s 架构的控制器组件,a c t i o n s e r v l e t 负责接收客户端请求,再委托 r e q u e s t p r o c e s s o r 去分发处理。和配置其他普通的s e r v l e t 类似,配置a c t i o n s e r v l e t 可以接收的许多初始化参数,如例程3 1 所示。 1 3 武汉理工大学硕士学位论文 例程3 1 典型的a c t i o n s e r v l c t 配置 ( 2 ) 配置主页文件列表 配置主页文件列表主要是配置指定当用户输入网站地址时,默认的主页位 置及名称,配置如例程3 2 所示。 例程3 2 主界面文件列表配置 u s e r c l o g i n j s p ( 3 ) 配置用户标记库 s t r u t s 框架提供了较为丰富的客户化标签库。如果要在应用中使用这些标签 库,那么必须在w e b 应用发布表述文件中配置它们,典型的配置如例程3 3 所 示。 例程3 3 典型的用户标记库配置 1 4 武汉理工大学硕士学位论文 ( 4 ) 配置错误处理 在s t r u t s 应用软件运行过程中,如果抛出错误或者异常,s t r u t s 本身提供的 通用错误处理机制无法解决时,则抛给w e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健身工作室策划书
- 老虎机英语课堂游戏
- 老年人急救常识课件
- 老年人康复培训常用知识课件
- CN120210105A 一种从诱导痰中提取细胞外囊泡的方法
- CN120208520A 一种用于激光诱导的玻璃蚀刻装置及无氟刻蚀方法
- 水工建筑测量工专业知识考试题库
- 老年人安全防骗知识培训课件
- 外研版九年级英语上册 Module 4单元测试及答案02
- 数与式二(因式分解、分式和二次根式50题)-2021-2025年中考数学复习分类汇编(上海专用)
- 安全数据脱敏技术
- 2025房地产销售全套培训
- 2025年上海市中考语文试卷真题(含答案及解析)
- 2025年高考化学广东卷试题真题解读及复习备考指导(精校打印)
- 车辆采购框架协议书
- 行政管理中的跨部门协作与沟通技巧试题及答案
- 设备安全案例培训课件
- 2025新课标中考英语词汇表
- 公司固定资产管理办法与实施细则
- 傣医学中的月疗褥疗法治疗
- 民警给学生上交通安全课
评论
0/150
提交评论