




已阅读5页,还剩50页未读, 继续免费阅读
(计算机软件与理论专业论文)面向struts2框架的模型驱动开发方法研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 当前基于s t r u t s 2 等框架进行w e b 应用开发存在着诸多问题,如缺乏有效的分析与 设计环境,模型重用率低且难以保证模型间以及模型与代码间的一致性。这些问题制约 了应用软件开发效率和质量的提高。模型驱动架构( m d a ,m o d e ld r i v e na r c h i t e c t u r e ) 是o m g 于2 0 0 1 年提出的软件开发过程中的模型组织管理框架,它抽象出与实现技术 无关、完整描述业务功能的p i m ,通过映射规则及辅助工具将p i m 转换成与具体实现 技术相关的p s m ,最后,在一定程度上将p s m 自动转换成代码。使用m d a 软件开发 方法,系统的p i m 可被多次重用,且能够有效地保持模型间的一致性,在一定程度上可 提高系统开发的自动化程度,保证了软件按其生命周期得到高效率的设计、开发及维护。 因此,m d a 为有效解决基于s t r u t s 2 等框架开发w e b 应用过程中存在的问题提供了解决 方案。 本文总结并分析了s t r u t s 2 框架的核心技术及其应用现状,结合m d a 理论及其开发 过程,深入剖析了国内外相关研究成果,提出了一种面向s t r u t s 2 框架的模型驱动开发 方法,该方法首先通过鲁棒性分析构建系统的p i m ,然后,通过定义u m lp r o f i l ef o r s t r u t s 2 ,以及p i m 到p s m ( s t r u t s 2f r a m e w o r ks p e c i f i cm o d e l ) 模型转换规则,运用基于 p r o f i l e 的模型转换方法将目标系统的p i m 转换为s t r u t s 2 框架相关模型,最后,在p s m 基础上,同样采用基于p r o f i l e 的模型转换方法,通过定义p s m 到代码转换规则,实现 目标系统软件代码的生成。本文还通过实例研究,介绍了如何在具体丌发中应用该方法。 本文所提出的方法不但能够解决目前基于s t r u t s 2 框架进行w e b 应用丌发所存在 的问题,而且还适用于其他采用m v c 架构模式的应用开发框架,可有效提高w e b 应用 开发效率和质量。相对于国内外的相关工作,主要贡献在于( 1 ) 提出了一种面向s t r u t s 2 框 架的模型驱动开发方法,有效解决在基于s t r u t s 2 框架进行w e b 应用开发过程中,难以 保证模型一致性的问题;( 2 ) 在与具体实现技术或平台无关的约束下,从功能性需求( 结 构和行为) 以及非功能性需求( m v c 架构模式) 两个方面来构建系统的p i m ,为p i m 加入了体系结构信息,从而以更丰富的语义描述了p i m ;( 3 ) 抽象出了s t r u t s 2 的元模型, 并定义了u m lp r o f i l ef o rs t r u t s 2 ,p i m 到p s m 转换规则以及p s m 到代码的转化规则, 所定义的u m lp r o f i l e 和转换规则可用于所有基于本文所提出方法的项目开发中,可有 效降低软件开发人员的代码编写量。 关键词:m d a ;模型驱动开发;模型转换;s t r u t s 2 ;u m lp r o f i l e a b s t r a c t a tp r e s e n t d e v e l o p i n gw e ba p p l i c a t i o n sb a s e df r a m e w o r k s ( i e s t r u t s ) e x i s tm a n y p r o b l e m s ,s u c ha si tl a c k so fe f f e c t i v ea n a l y s i sa n dd e s i g ne n v i r o n m e n t ,t h e r e u s e r a t eo f m o i d e l si sl o w , a n di t sh a r dt ok e e pc o n s i s t e n c ya m o n gm o d e l sa n da m o n g m o d e l sa n dc o d e s , t h e s ep r o b l e m sr e s t r i c tt h ei m p r o v e m e n to fe f f i c i e n c ya n dq u a l i t yo fd e v e l o p i n ga p p l i c a t i o n s m o d e i d r i v e na r c h i t e c t u r ei sp r o p o s e db yo m g i n2 0 0 1 ,i td e f i n e st w om o d e l sc a l l e dp i m 觚dp s m t h ep i m ( p l a t f o r mi n d e p e n d e n tm o d e l ) d e s c r i b e st h es y s t e m ,b u td o e sn o ts h o w d e t a i l so fi t su s eo fi t sp l a t f o r m ,t h ep s m ( p l a t f o r ms p e c i f i cm o d e l ) p r o d u c e db yt h e t l - 趾s f - o n n a t i o ni sam o d e lo ft h es a m es y s t e ms p e c i f i e db yt h ep i m ,i ta l s os p e c i f i e sh o w t h a t s y s t e mm a k e su s eo ft h ec h o s e np l a t f o r m t h el a s t ,t o ac e r t a i ne x t e n t ,a u t o m a t i c a l l y c o n v e r t e di n t oc o d e s o f t w a r ed e v e l o p m e n tu s i n gt h em d aa p p r o a c h ,t h ep i ms y s t e mc a n b e r e u s e dm a n yt i m e s ,a n dc a ne f f e c t i v e l ym a i n t a i nt h ec o n s i s t e n c yb e t w e e nm o d e l s i ta l s oc a l l i n c r e a s et h ed e g r e eo fa u t o m a t i o no fs y s t e md e v e l o p m e n t t h e r e f o r e ,m d ap r o p o s e s a l l e f f e c t i v ea p p r o a c hf o rs o l v i n gp r o b l e m sw h i c he x i s ti nd e v e l o p i n gw e ba p p l i c a t i o n sb a s e d s t r u t s 2f r a m e w o r k t h i sp a p e rs u m m a r i z e sa n da n a l y z e st h ec o r et e c h n o l o g ya n da p p l i c a t i o ns i t u a t i o n so f s t r u t s 2f r a m e w o r k c o m b i n e sm d a 嬲w e l la s i t s d e v e l o p m e n tp r o c e s s ,p r e s e n t s a m o d e l 一d r i v e na r c h i t e c t u r ea p p r o a c hf o rd e v e l o p i n gw e ba p p l i c a t i o nw i t hs t r u t s 2 t h e m e t h o d w h i c hi n c l u d e sm o d e l i n gp i mb yr o b u s t n e s sa n a l y s i s ,t r a n s f o r m i n gp i m t op s m b a s e do nap r o p o s e du m lp r o f i l ef o rs t r u t s 2a n dg e n e r a t i n gc o d e sf r o mp s m ,c o v e r st h e m a j o rp r o c e s so fd e v e l o p i n gw e ba p p l i c a t i o n sw i t hs t r u t s 2f r a m e w o r k t h ea d v a n t a g eo f t h i s m e t h o dt h a tc o m b i n e sm d aw i t hs t r u t s 2t of a c i l i t a t et h ed e v e l o p m e n to fw e ba p p l i c a t i o n a l s o i ss h o w nb yt h ec a s es t u d y c o m p a r e dt or e l a t e dw o r ka th o m ea n da b r o a d ,t h em e t h o dp r o p o s e di n t h i sp a p e rn o t o n l yc a ns o l v et h ee x i s t i n gp r o b l e m si nt h ep r o c e s so fw e ba p p l i c a t i o nd e v e l o p m e n tb a s e d s t r u t s 2 台a m e w o r k b u ta l s oa p p l i c a b l et oo t h e ra 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 kw h i c h a c h i e v e st h em v cp a r e m i tc a ne f f e c t i v e l yi m p r o v et h ee f f i c i e n c ya n dq u a l i t yo f 、e b a p p l i c a t i o nd e v e l o p m e n t k e y w o r d s :m d a ;m o d e l d r i v e nd e v e l o p m e n t ;m o d e lt r a n s f o r m a t i o n ;s t r u t s 2 ;u m l p r o f i l e 独创性声明 本人郑重声明:所提交的学位论文是本人在导师指导下独立进行研究工作 所取得的成果。据我所知,除了特别加以标注和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果。对本人的研究做出重要贡献的个人和集 体,均已在文中作了明确的说明。本声明的法律结果由本人承担。 学位论文作者签名:赵型蕴 日期: 学位论文使用授权书 本学位论文作者完全了解东北师范大学有关保留、使用学位论文的规定, 即:东北师范大学有权保留并向国家有关部门或机构送交学位论文的复印件和 电子版,允许论文被查阅和借阅。本人授权东:i i n 范大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其它复制手段 保存、汇编本学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:趑遂缝 e t 期:弛蠡丝 学位论文作者毕业后去向: 工作单位: 通讯地址: 指导教师签名: 日期: 电话: 邮编: 东北师范大学硕士学位论文 第一章引言 1 1 研究背景及意义 随着i n t e m e t 的普及应用,如何快速丌发高质量的w e b 应用软件为软件工程研究提 出了新的挑战。为了简化w e b 应用开发,新的应用开发框架不断涌现出来,如s t r u t s , j s f ,s p r i n g ,h i b e r n a t e 等。但是由于软件需求的复杂性、多变性,软件开发过程中经 常出现需求、分析、设计和实现不一致的现象,造成开发速度跟不上用户需求的变化, 整体开发周期长,开发费用高及维护更新困难等一系列的问题。迫切需要普适性较好的 面向框架的软件开发方法,将软件生命周期【l j 统一起来,并尽量节省维护软件产品质量 及开发成本的平衡。 s t r u t s2 t 2 】是a p a c h ej a k a r t a 的一个o p e n s o u r c e 框架,是m v c 2 架构模式的良好实 现,代表了j a v aw e b 丌发的新趋势。它以o p e n s y m p h o n yw r e b w o r k 框架设计思想为核 心,保留了s t r u t s l x 的简单易用性,并且充分利用了w e b w o r k 的拦截器机制,将s t r u t s 2 发展成一个具有高度可扩展性的框架,简化了从构建、部署到日常维护的整个应用开发 周期。 尽管s t r u t s 2 已广泛应用到w e b 应用开发中,但目前面向s t r u t s 2 等框架的开发过程 仍存在很多问题。首先,目前缺少基于s t r u t s 2 框架构建系统设计模型的规范和支撑工 具( 如m y e c l i p s e 5 x 仅支持图形化开发s t r u t s l x 配置文件) :其次,系统设计过程中, 业务逻辑和平台技术混在一起,一旦实现平台发生变更,将无法实现模型的重用;再次, 模型主要作为软件丌发人员对业务需求分析与设计的蓝图,一旦需求变更,需要分别对 分析模型、设计模型及代码进行同步的手动更改,改动过程重复且难以保证需求定义、 分析、设计与实现的一致性。 模型驱动架构( m d a ,m o d e ld r i v e na r c h i t e c t u r e ) 是o m g 于2 0 0 1 年3 月提出的 软件开发过程中的模型组织管理框架【3 】。它通过使用模型来指导系统的分析、设计、实 现,以产生高质量的、易于维护和进化的应用软件。目前正成为软件工程界的研究焦点, 同时引起了各个相关产业领域的高度关注,广泛应用于电信、金融、电子商务等众多行 业的信息系统的建设中。 m d a 的核心思想是首先为应用建立独立于实现技术的平台无关模型,再通过映射 方法将平台无关模型转换为与实现技术特性相关的平台相关模型,进而生成可执行代码 并在目标平台上部署和实现。 m d a 软件过程采用了模型驱动方法,即采用模型技术来“制导”软件开发每一个步 骤或活动的进行,驱动系统需求收集、分析、设计、实现等活动的进行。m d a 主要具 有以下优点:( 1 ) 对系统功能和结构形式化描述的p i m 是抽象的,代表了业务功能和行为, 】 东北师范大学硕士学位论文 不受具体实现技术的影响,可以通过不同的转换规则,映射为不同中间件平台的p s m , 可方便地将现有的系统、正在建造的系统以及今后可能建造的系统在不同的中间件平台 上进行集成,提高系统之间互操作、互移植的程度;( 2 ) 模型间的映射,实现了分析模型、 设计模型、程序代码的一致性及无缝结合,保证了软件按其生命周期得到高效率的设计、 开发及维护等;( 3 ) 可延长软件的生命周期、降低维护费用,模型严格的形式化语义定义 可提高系统的质量,也有利于提高系统丌发的自动化程度。因此,m d a 为有效解决在 基于s t r u t s 2 等框架开发w e b 应用过程中存在的问题提供了可能。 研究面向s t r u t s 2 框架的模型驱动开发方法为面向s t r u t s 2 等框架开发w e b 应用提供了 新的思路和方法,更是对m d a 软件开发方法的有意义的深入探索。该方法可有效解决 面向s t r u t s 2 等框架开发w e b 应用过程中存在的问题,可有效简化基于s t r u t s 2 等框架的应 用开发过程,提高了软件开发效率和质量。 1 2 研究现状及选题依据 目前,m d a 已经得到了企业界的广泛认同和应用。各行各业的众多企业或组织已 经把m d a 作为软件系统开发的指导框架,把m d a 软件方法和标准应用于系统开发中。 而众多软件商支持m d a 的c a s e 产品为m d a 软件丌发方法提供了工具, 如a r c s t y l e r , r a t i o n a lr o s e ,r a t i o n a ls o f t w a r ea r c h i t e c t u r e , o p t i m a l 等。 文献【4 】通过使用w | e b 建模语言w e b m l 来从结构模型( 数据内容) 、超文本模型( 视图 页面) 、表示模型( 页面布局与图形) 以及个性化模型( 用户状态) 来对数据密集型w e b 应用建立客户端及服务器端无关的模型,并提出了在这些模型驱动下的w e b 应用设计方 法。 文献1 5 j 提出基于m d a 并采用u w a ( u b i q u i t o u sw 曲a p p l i c a t i o n ) 设计框架、 m o d e l v i e w - c o n t r o l l e r 架构模式的w e b 应用开发方法。该方法采用u w a 框架建立w e b 系 统的u w a 概念模型( 作为初始p i m ) ,再通过模型映射,将u w a 概念模型映射到具有m v c 架构模式语义信息的p i m 。在此基础上再通过模型映射,将p i m 映射至i j s f 框架相关的 p s m 模型。最终,在p s m 模型基础上来指导代码开发。 文献1 4 j 所提出的方法,一方面,建模虽然分离了视图与业务逻辑,但还不是完整意 义的m v c 架构模式;另一方面,虽然是采用了模型驱动下的思想,并没有完全遵循或实 现m d a 的全部开发过程。文献【5 】所提出的方法虽然可以适用于基于m v c 架构模式实现 框架的w e b 应用开发,但由于p i m 建模依赖于u w a 框架,因此具有一定的局限性。 而基于s t r u t s 2 的模型驱动开发方法,目前研究理论和实践都较少。文献【6 】在宣传其 r s a ( r a t i o n a ls o f t w a r e a r c h i t e c t u r e ) 时,给出了由用户体验模型生成s t r u t s l x 代码的演示 实例,但该实例仅构建了用户体验模型,直接由该模型生成程序代码,并没用说明构建 的依据,仅仅提供了一种实现的思路。 根据以上国内外研究现状,面s t r u t s 2 框架的模型驱动开发方法的理论和实践都并 2 东北师范大学硕士学位论文 不成熟,迫切需要一种能够完整体现m v c 架构模式,完全遵循m d a 的开发过程,并具 有较高普适性的面向s t r u t s 2 框架等的模型驱动开发方法。故本文选择研究面向s t r u t s 2 的 模型驱动开发方法,使得该方法能够弥补现存研究成果的不足,并有效解决面向s t r u t s 2 框架开发w e b 应用中存在的问题,同时也为基于其他框架的开发提供了新的思路和方 法。 1 3 研究目标及主要工作 本文的研究目标是提出一种面向s t r u t s 2 框架的模型驱动开发方法,解决当前面向 s t r u t s 2 框架开发w e b 应用软件开发方法中的模型重用率低,难以保持模型间一致性, 开发及维护效率不高等问题。重点解决该模型驱动开发方法中的三个关键问题:( 1 ) 研究 既能反映出应用系统的全部需求,又要足够简单以适合m d a 的软件开发过程的p i m 建 模方法,完成p i m 的建模;( 2 ) 选择普适性较好的模型转换方法,定义模型间的转换规 则,完成p i m 到s t r u t s 2 框架下p s m 的转换;( 3 ) 定义p s m 到s t r u t s 2 框架下配置代码 文件的映射规则,完成p s m 到配置文件的转换。 针对该论文的研究目标,本文主要完成以下工作: 1 研究s t r u t s 2 框架的架构模式及核心特点,分析并总结当前面向s t r u t s 2 框架开发 w e b 应用存在的问题,同时研究m d a 的核心技术及m d a 软件开发方法的研究现状和 优势。 2 总结并分析当前国内外基于模型驱动的w e b 应用开发方法,提出一种适合面向 s t r u t s 2 框架模型驱动开发方法。 3 总结并分析国内外模型驱动开发过程中p i m 的建模方法,提出一种基于鲁棒性 分析,从功能性需求( 结构和行为) 以及非功能性需求( m v c 架构模式) 两个方面来 对系统p i m 建模的方法,并给出详细的建模步骤及实例说明 4 总结并分析目前成熟的模型转换方法,选择普适性广的基于p r o f i l e 的模型转换 方法,定义模型间的转换规则,实现p i m 到p s m ,及p s m 到程序代码的转换。并给出 详细的建模步骤及实例说明。 1 4 论文组织结构 本文就s t r u t s 2 框架的相关理论及实践,结合m d a 的相关理论及应用现状,提出一 种面向s t r u t s 2 框架的模型驱动开发方法,全文由以下8 章组成: 第1 章,引言。详细论述了本文的研究背景及意义、研究现状及选题依据、研究目 标及主要工作,并说明了本文的组织结构。 第2 章,s t r u t s 2 框架概述。介绍了s t r u t s 2 0 框架的相关理论及应用现状,并总结了 当前面向s t r u t s 2 框架开发w e b 应用的过程。 3 东北师范大学硕士学位论文 第3 章,m d a 概述。介绍了m d a 及m d a 软件开发方法的理论基础及发展现状, 重点介绍了m d a 中的模型转换方法及其与传统软件开发方法的对比,还介绍了目前支 持m d a 软件开发过程的工具。 第4 章,面向s t r u t s 2 框架的模型驱动丌发方法。介绍了该方法的基本原理,针对该 方法的关键研究点,分别对国内外的研究成果进行了对比与分析,提出了本文的解决方 案。 第5 章,应用系统的p i m 建模。论述了面向s t r u t s 框架的模型驱动开发方法中p i m 的构建方法,对如何构建应用系统的鲁棒图、类图、顺序图等的步骤都进行了详细说明。 第6 章,模型转换及代码生成。详细描述了面向s t r u t s 框架的模型驱动开发方法中, 模型转换及代码生成过程,其中包括提取s t r u t s 2 元模型,构建u m lp r o f i l ef o rs t r u t s 2 及定义p i m 到p s m ,p s m 到代码的转换规则。 第7 章,实验研究。以修改学生成绩用例为实验基础,说明应用面向s t r u t s 2 框架的 模型驱动开发方法如何进行w e b 应用的快速丌发。 第8 章,总结与展望。总结本文的研究内容,并说明下一步的研究工作。 4 东北9 币范大学硕士学位论文 第二章s t r u t s2 框架概述 2 1s t r u t s 2 简介 a p a c h es t r u t s ( 简称s t r u t s ) 在2 0 0 1 年7 月发布,作为全世界第一个m v c 框架,它 一直都是m v c 领域旱最流行的框架。经过漫长时间的检验,s t r u t s l 已经成为一个高度 成熟的m v c 框架,不管是稳定性还是可靠性,都得到了广泛的证明,对于实际项目的 开发有很大的帮助。但随着时间的流逝,s t r u t s l 的缺陷也逐渐的显露出来,而且许多开 源社区的w e b 框架纷纷登台亮相,大量的开发人员、软件公司开始选择更好的m v c 解决方案,例如j s f 和t a p e s t r y 等。 目前,s t r u t s 已经分化成了两个框架:第一个框架就是传统的s t r u t s l 和w e b w o r k 结 合后的s t r u t s 2 框架。s t r u t s 2 虽然是在s t r u t s l 的基础上发展起来的,但实质上是以 w e b w | o r k 为核心,为传统s t r u t s i 注入了w | e b w o r k 的设计思想,统一了s t r u t s l 和w - e b w o r k 两个框架,这两个框架都是m v c 框架领域成熟的框架,这保证了s t r u t s 2 作为实际开发 框架的成熟性,允许s t r u t s l 和w 曲w b r k 开发者同时使用s t r u t s 2 框架。 s t r u t s l 分化出来的另一个框架是s h a l e ,这个框架远远超过了s t r u t s l 原有的设计思 想,使用了全新的设计思想,更像一个新的框架而不是s t r u t s l 的升级。s h a l e 与s t r u t s l 的突出不同点:s t r u t s l 与j s f 集成,而s h a l e 则是建立在j s f 之上;s t r u t s l 实质上是一 个巨大的、复杂的请求处理器,而s h a l e 则是一组能以任何方式进行组合的服务,简单 地说,s h a l e 是一种s o a ( 面向服务) 架构。 s t r u t s 2 是以w e b w o r k 为核心,而不是以s t r u t s l 为核心,因此,从w e b w o r k 过渡到 s t r u t s 2 是一件非常简单的事情。而对于传统的s t r u t s l 开发者,s t r u t s 2 也提供了很好的 向后兼容性,s t r u t s 2 可与s t r u t s l 有机结合,从而保证s t r u t s l 开发者能够平稳过渡到 s t r u t s 2 。 2 2s t r u t s2 核心技术 2 2 1 核心组件 s t r u t s 2 框架的核心思想遵从m v c 架构模式, 其核心组件包括【7 j f i l t e r d i s p a t c h e r 、 i n t e r c e p t o r 、a c t i o n s 、r e s u l tt y p e sa n dr e s u l t s v i e wt e c h n o l o g i e s 、v a l u e s t a c k o g n l 等。 核心控制器f i l t e r d i s p a t c h e r :负责拦截用户所有请求。如果用户请求以a c t i o n 结尾, 该请求将被转入s t r u t s 2 框架处理。 拦截器i n t e r c e p t o r s :就是在某个事件发生之前进行拦截,并插入某些处理过程瞵j , 即动态地拦截发送到指定a c t i o n 的请求,完成请求。通过拦截器机制,可以把多个a c t i o n 5 东北师范大学硕士学位论文 中需要重复指定的代码提耿出来,放在拦截器中定义,从而提供高效的代码重用,实现 更高层次的解耦。这样,可以用可插拔的方式将功能注入到a c t i o n 中。s t r u t s 2 框架的很 多功能都是以拦截器的形式提供出来,例如类型转换、验证、国际化、文件上传等,拦 截器i n t e r c e p t o r s 与a c t i o n 之间的关系如下图: f i l t e r d i s p a t c h e r 之乡 a c t i o n p r o x y 类型转换等拦截器 文件上传等拦截器 a c t i o n 弋户 r e s u l t f i l t e r d i s p a t c h e r 初始化一个 a c t i o n p r o x y 实例,并调用它的e x e c u t e 方法 拦截器方法会先拦截并处理用户请求, 然后才进入a c t i o n 组件,处理用户请求 返问一个逻辑视图名,系统负责将该 逻辑视图名对应的资源返【口l 给用户 图2 1 拦截器与a c t i o n 之间的关系1 9 1 业务逻辑组件a c t i o n s :一般a c t i o n 类需要实现a c t i o n 接口,或直接继承基础类 a c t i o n s u p p o r t ,要实现默认的e x e c u t e 方法,并返回一个在配置文件中定义的r e s u l t 。当 然a c t i o n 也可以只是一个p o j o ( 普通的j a v a 对象) ,不用继承任何类也不用实现任何接 口。a c t i o n 组件用于封装具体的业务逻辑,进行实际的业务逻辑处理。通常包含系统的 业务逻辑组件以及隐藏其下的d a o 、领域对象等组件。 r e s u l t s 组件:它用来指示a c t i o n 执行之后,如何显示执行的结果。r e s u l tt y p e 表 示如何以及用哪种视图技术展现结果。通过r e s u l t x y p e ,s t r u t s 2 可以方便的支持多种视 图技术,而且这些视图技术可以互相切换,a c t i o n 部分不需做任何改动。 v a l u e s t a c k o g n l :在s t r u t s 2 框架为每一次请求构建一个v a l u e s t a c k ,并将所有相 关的数据对象( 如a c t i o n 实例对象等) 放到v a l u e s t a c k 中,再将v a l u e s t a c k 暴露给视图 页面,这样页面就可以直接使用o g n l 访问后台处理生成的数据。 2 2 2 体系结构 s t r u t s 2 框架以用户的业务逻辑控制器为目标,创建一个控制器代理。控制器代理负 责处理用户请求,处理用户请求时回调业务逻辑组件a c t i o n 的e x e c u t e 方法,该方法的 返回值将决定了s t r u t s 2 将怎样的视图资源呈现给用户9 1 ,其体系概图如下: 6 东北师范大学硕士学位论文 图2 2s t r u t s 2 体系结构概图【9 j s t r u t s 2 框架的大致处理流程如下: 1 浏览器发送请求,例如请求h o m e a c t i o n 等; 2 核心控制器f i l t e r d i a p a t c h e r 根据请求决定调用合适的a c t i o n 组件; 3 s t r u t s 2 的拦截器链自动对请求应用通用的功能,例如w o r k f l o w ,v a l i d a t i o n 或文件 上传等功能; 4 回调a c t i o n 的e x e c u t e 方法,该e x e c u t e 方法先获取用户的请求参数,然后执行某 种数据库操作,既可以是将数据添加到数据库中,也可以从数据库中检索信息; 5 a c t i o n 的e x e c u t e 方法处理结果信息将被输出到浏览器中,可以使h t m l 页面、 图像,也可以是p d f 文档或者其他文档,此时支持的视图技术非常多,既支持j s p , 也支持v e l o c i t y 、f r e e m a r k e r 等模板技术; s t r u t s 2 框架实现了m v c 架构模式,其工作流程如图2 3 所示,控制层主要由s t r u t s 2 框架的核心控制器f i l t e r d i s p a t c h e r 和i n t e r c e p t o r s 组成,前者负责拦截用户所有请求,并 调用相应的a c t i o n 组件,而i n t e r c e p t o r s 提供了高层次的解耦,一般不涉及具体的业务 逻辑,可被划分到控制器层;模型层由实现具体业务逻辑的a c t i o n 组件实现;视图层是 r e s u l tt y p e s 和r e s u l t s v i e w 的结合,提供与用户交互的界面;v a l u e s t a c k 和o g n l 则负责 为各个组件提供交互的数据。 7 东北师范大学硕士学位论文 tl ut s ch t t p s e r v m r e q u e s t 】 j 。+ 一 。 a c t f o n c o n t e x t c l e a n u p 一 o t h e rf i l t e r st s i t e m e s h 。e t c ) f i l t e r d i s p a t c h e r 一 l f ll , a c t i o n p r o x y i- 、鼍篡兰 a c t l o n m a p p e rj ,t l 5 f畸m l ft i 。一r 妄e ”f i i u r a t i o n h t f a l 翟l m a n a g e r l 。曼篡2 曼r 磐奎。【 j 、j lr 。t ) _ 1 - e m p l a t e s t r u t s x m ll i n l e r c e p t o r3 一 。霉9 + 。”“ l l 。 i n t e r c e p t o r2 幺 ll i n t e r c e p t o r1 毒 、j 1 一。 叫h t t p s e t r e s p o n s e 卜 k e y : 一 8 e r v l e tf i t t e r s s t r u t sc o r et n 玺e f c e o 钳$u 6 e rc t e a t e c l 图2 3s t r u t s 2 0 框架工作流程图 2 2 3 与s t r u t s l x 比较 s t r u t s1 【l o 】和s t r u t s 2 有三个共同的基本概念:请求处理程序、响应处理程序和标签 库。不过在s t r u t s 2 中,这些部分经过了重新设计,并得到了改进,以便开发。 开发人员会注意至u s t r u t s 2 框架中出现的许多改动。譬如说,过滤器取代了服务器小 程序,相应变化在部署描述文件里会有所体现。同样,配置文件经过了全面改动。还会 注意到其他一些关键特性,譬j t l l a c t i o n 类方面的变化、支持注释、验证方面的变化。 s t r u t s2 0 框架中出现的许多特性旨在让s t r u t s 更容易使用: 1 改进的设计:与s t r u t s1 相比,s t r u t s 2 框架的所有类都基于接口,核心接口独 立于h t t p 。这些a p i 并不依赖服务器小程序a p i ; 2 简化的a c t i o n :s t r u t s 2a c t i o n 独立于框架,是简化的普通j a v a 对象( p o j o ) , 拥有e x e c u t e ( ) 方法的任何j a v a 类都可以用做a c t i o n 类。 3 p o j o 表单:s t r u t s 2 不支持a c t i o n f o r m s ,a c t i o n f o r m s 中定义的属性可以直接放 在a c t i o n 类上。 4 默认值:s t r u t s 2 配置文件中的大多数配置元素都会有默认值,有助于减少在x m l 文件中需要进行的配置,而且s t r u t s 2 支持注释,这带来了更大的方便。 5 改进的结果: s t r u t s 2 中, 标签被 标签取代, s t r u t s2 结果可 以帮助准备响应,并提供构建多种输出类型视图的灵活性。 6 改进的标签:s t r u t s 2 标签不单单发送输出数据,还能提供样式表驱动标记,这 8 东北9 币范大学硕士学位论文 样就可以用较少的代码构建一致性页面。s t r u t s 2 标签现在可与f r e e m a r k e r 、 v e l o c i t y 及类似模板引擎配合使用。 7 引入拦截器:s t r u t s 2 为拦截器( i n t e r c e p t o r ) 提供了全厦支持。拦截器可在a c t i o n 类执行前后加以执行。拦截器经配置后,可以把工作流程或者验证等常见功能作 用到请求上。所有请求通过一组拦截器传送,之后再发送至u a c t i o n 类。a c t i o n 类 被执行后,请求按照相反顺序再次通过拦截器传送。 8 支持a j a x :为了创建使用a j a x 的动态w e b 应用,s t r u t s 2 提供了a j a x 主题,从 而大大改进了交互应用。面向a j a x 的s t r u t s 2 标签基于d o j o 窗口组件。 9 快速启动:部署配置文件可以重新装入,可以动态地进行许多变化,用不着重 新启动w e b 容器。 1 0 易于测试:s t r u t s2a c t i o n s 独立于h t t p ,因而与框架中立。无须使用模拟对象 ( m o c ko b j e c t ) ,就很容易测试 1 1 使用注释:使用s t r u t s 2 开发的应用可以使用j a v a5 注释,作为x m l 和j a v a 属 性配置之外的一个替代办法。注释尽量减少了对x m l 的需要。a c t i o n 、拦截器、 验证及类型转换方面都有注释。 1 2 易于插入:只要把插件j a r 文件放到w e b i n f l i b 目录中,即可轻松安装s t r u t s 2 插件,不需要手动配置。 1 3 便于与s p r i n g 集成: s t r u t s 2a e t i o n 能够感矢l j s p f i n g ( s p r i n g a w a r e ) 。只要为 某个应用添2 j i j s p r i n gb e a n s ,就可以添加对s p r i n g 的支持。 2 3s t r u t s2 0 框架应用现状 s t r u t s 2 是目前流行的基于m v cm o d e l2 的w e b 应用开发框架。它通过控制器将模 型与视图分离丌来,从而降低了层间的耦合性,增强了系统的灵活性、复用性、可维护 性和可扩展性,大大提高了开发效率,在开放、大型、可扩展的基于j 2 e e 的w e b 应用 开发中具有显著优势。 r u p 中,开发应用程序首先需要进行需求捕获,得到用例及其规约,再进行需求分 析,形成分析模型;然后结合具体的实现平台,进行设计,构建系统的设计模型;最后 依据设计模型进行编码实现及测试、部署维护。针对s t r u t s 2 框架开发w e b 应用的过程 可进一步细化为:( 1 ) 分析目标系统的用例及其规约,构建表示系统结构的静态图( 如类 图等) 和描述系统业务逻辑走向的动态图( 如顺序图等) ;( 2 ) 结合s t r u t s 2 框架基于m v c 架构模式的特点( a c t i o n 组件,拦截器机制等) 对分析模型进行精化,得到s t r u t s 2 框架下 的设计模型;( 3 ) 最后软件开发人员根据设计模型来手工编写实现系统功能的代码,并测 试及部署维护。 我们可以看出,传统的基于s t r u t s 2 框架开发w e b 应用的软件开发方法关注的焦点是 编写代码,以代码为中心,用u m l 图来辅助设计,帮助理解系统结构,模型和代码之 9 东北师范大学硕士学位论文 问存在隔阂,一旦需求变更,需要同步修改模型及代码,工作量重复且难以保证模型的 一致性。而当新技术出现时,软件开发人员不得不重复进行设计模型的构建及代码的编 写,无法实现模型的重用。 2 4 本章小结 本章首先概括地介绍了s t r u t s 2 框架的产生背景,说明了其与s t r u t s l x 及w e b w o r k 框架的关系,然后对该框架的核心组件( f i l t e r d i s p a t c h e r 、i n t e r c e p t o r 、a c t i o n s 、r e s u l tt y p e s a n dr e s u l t s v i e wt e c h n o l o g i e s 、v a l u e s t a c k o g n l 等) 和体系结构来详细论述了s t r u t s 2 框 架的核心特点及实现机制,并将s t r u t s 2 与s t r u t s l x 框架从架构实现和应用两个角度进 行了分析比较,客观地说明了这两个比较成熟的框架的各自特点。 本章还重点叙述了传统的面向s t r u t s 2 框架开发w e b 应用的过程,并对其中存在的问 题,进行了深入的剖析。 东北师范大学硕士学位论文 第三章m d a 概述 3 1m d a 简介 m o d e ld r i v e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安防专家考试题库及答案
- 考点攻克人教版8年级数学上册《整式的乘法与因式分解》达标测试试题(含答案及解析)
- 货运值班员、检查员考试试题(附答案)
- 2025年旅游地产项目规划设计与可持续发展策略分析报告
- 押题宝典高校教师资格证之《高等教育心理学》考试题库(含答案详解)
- 2025年环境监测物联网技术在环境监测设备供应链中的应用报告
- 2025至2030年中国甘油(丙三醇)行业发展监测及投资战略研究报告
- 解析卷人教版8年级数学上册《全等三角形》综合训练试题(含答案解析)
- 2025年科技与互联网行业智能家居与智慧城市环境监测报告
- 推拿治疗学考试题库及参考答案详解(黄金题型)
- 碳纤维行业培训课件
- 口腔护理教学课件设计与实施要点
- 中医诊所安全管理制度
- 2024年海南三亚市海棠区机关事业单位招聘笔试高频难、易错点备考题库及参考答案详解
- 肝脏的解剖和分段分叶
- 耳石症诊断与治疗讲课件
- 空管招聘面试题及答案
- 校外集体配餐管理制度
- 期货实物交割管理制度
- T/CHES 43-2020水利水电工程白蚁实时自动化监测预警系统技术规范
- T/CECS 10163-2021纤维增强聚氨酯复合材料杆塔
评论
0/150
提交评论