(计算机应用技术专业论文)基于mvc设计模式的struts技术在bs系统中的研究与应用.pdf_第1页
(计算机应用技术专业论文)基于mvc设计模式的struts技术在bs系统中的研究与应用.pdf_第2页
(计算机应用技术专业论文)基于mvc设计模式的struts技术在bs系统中的研究与应用.pdf_第3页
(计算机应用技术专业论文)基于mvc设计模式的struts技术在bs系统中的研究与应用.pdf_第4页
(计算机应用技术专业论文)基于mvc设计模式的struts技术在bs系统中的研究与应用.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西安建筑科技大学硕士论文 基于m v c 设计模式的s t r u t s 技术在b s 系统中的研究与应用 专业:计算机应用技术 硕士生:刘纯 指导老师:赵文静教授 摘要 随着i n t e m e t 技术的发展,计算模式不断更新,企业信息系统基本架构也从c s 架 构逐渐发展为当今以b s 架构为主流;目前应用j 2 e e 技术构建信息系统的需求越来越 复杂,开发周期越来越紧迫,同时对系统的稳定性、扩展性和可维护性要求越来越高, 因此b s 架构的分层设计以及各层的框架搭建和技术选型就变得尤为重要。 本文以基于m v c 设计模式的s t r u t s 框架在w e b 层的应用为线索展开论述,首先 详细介绍了m v c 设计模式和实现m v c 设计模式的s t r u t s 框架;然后本文深入分析了 目前b s 架构的多层划分,在前人理论的基础上,提出了五层b s 架构分层设计的新观 点,并且针对核心层做了详细的分析和设计,不但讨论了每层可采用的主流技术,而且 还给出了建议性的类库( 包) 设计。这对于b s 系统的设计和开发有很强的指导意义。 最后本文以亚洲物流西安研发中心的t m s ( t r a n s p o r tm a n a g e m e n ts y s t e m ) 产品作 为理论与实践的结合。详细论述了本文提出的分层思想及其相关技术在t m s 中的应用。 关键词:m v c :s t r u t s :b s ;j 2 e e ;设计模式;w e b 框架;物流 第1 页 西安建筑科技大学硕士论文 o n s t u d y a n d a p p f i c a f i o n o fs t r u t sf r a m e w o r kb a s e do nm v c d e s i g n p a t t e r ni nb sa r c h i t e c t u r eb a s e ds y s t e m s p e c i a l i t y :c o m p u t e ra p p l i c a t i o nt e c h n o l o g y n a m e :l i uc h u n t u t o r :z h a o w e n j i n g p r o f a b s t r a c t e n t e r p r i s e - w i d ei n f o r m a t i o ni n f r a s t r u c t u r eh a sd e v e l o p e d i n t ob sa r c h i t e c t u r ef r o mc s a r c h i t e c t u r ew i t ht h ec o n t i n u o u sd e v e l o p i n go fi m e m e tt e c h n o l o g ya n df a s ta d v a n c e si n c o m p u t a t i o nm o d e ,t h e b sa r c h i t e c t u r eb a s e d m u l t i l a y e rd e s i g n i n g ,t h er e s p e c t i v e l y f r a m e w o r kc o n s t r u c t i o na n ds o f t w a r et e c h n o l o g ys e l e c t i o nb e c o m em o r ea n dn l o r ei m p o r t a n t 、i t l lt h er e q u i r e m e n to fj 2 e eb a s e di n f o s y sd e m a n d a n a l y s i sc o m p l e x i t y r & dt i m ec y c l e l i m i t a t i o n ,s y s t e ms t a b i l i t y , e x t e n s i b i l i t y , m a i n t a i n a b i l i t y t h i sp a p e rb e g i n sw i t l lt h ea p p l i c a t i o no f s t r u t sf r a m e w o r ki nw e b l a y e r b a s e do nm v c d e s i g np a t t e r n d e t a i l e di n t r o d u c t i o no f m v c d e s i g np a t t e r na n d t h es t r u t sf r a m e w o r k ( w h i c h i st h ei m p l e m e n t so fm v c ) a r e p r o p o s e da tf i r s t ,t h e nd e t a i l e da n a l y s i so fp r e s e n tm u l t i t i e r m o d eo fb sa r c h i t e c m r ei sp r o v i d e d b a s e do nt h ef o r g o i n gi n t r o d u c t i o na n da n a l y s i s ,t h i s p a p e rp r o p o s e da5 - t i e ra r c h i t e c t u r ea n dp u tf o r w a r dd e t a i l e da n a l y s i sa n dd e s i g no ft h e k e n n e lt i e r , n o to n l yi n c l u d em a i n s t r e a m t e c h n o l o g ys u i t a b l ef o r e a c ht i e r , b u ta l s oi n c l u d et h e r e c o m m e n d a t i o no fc l a s s l i b r a r i e s ( p a e k a g e ) ,w h i e hi ss i g n i f i c a n t t ot h e d e s i g n i n ga n d d e v e l o p i n g o f b sb a s e d a p p l i c a t i o n t m s ( t r a n s p o r t a t i o nm a n a g e m e n ts y s t e m ) p r o j e c tb y a s i a l o g i s t i c sr & d c e n t e rx i a n b r a n c hi sg i v e na sa ne x a m p l ei nt h el a s ts e c t i o no f t h i sp a p e r , a n dt h ed e t a i l e de x a m p l e so f 5 - t i e ra r c h i t e c t u r ea n di t sa p p l i c a t i o ni sd i s c u s s e di nt h i ss e c t i o n k e y w o r d s :m v c ( m o d e l v i e w c o n 仃0 1 1 e r ) ;s t r u t s ;b s ;j 2 e e ;d e s i g np a t t e r n ;w e b f r a m e w o r k ;l e g i 【s t i e s 第n 页 声明 本人郑重声明我所呈交的论文是我个人在导师指导下 进行的研究工作及取得的研究成果。尽我所知,除了文中特 别加以标注和致谢的地方外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含本人或其他人在其它单位已 申请学位或为其它用途使用过的成果。与我一同工作的同志 对本研究所做的所有贡献均已在论文中作了明确的说明并 表示了致谢。 申请学位论文与资料若有不实之处,本人承担一切相关 责任。 论文作者签名:未ii 轧 日期:砂而每;问 关于论文使用授权的说明 本人完全了解西安建筑科技大学有关保留、使用学位论 文的规定,即:学校有权保鼠送交论文的复印件,允许论文 被查阅和借阅;学校可以公布论文的全部或部分内容可以 采用影印、缩印或者其它复制手段保存论文。 ( 保密的论文在论文解密后应遵守此规定) 敝储獬:划弛导师鹤:哟蹶础和 西安建筑科技大学硕士论文 1 1 课题研究的意义 1 绪论 寻求在软件开发过程中设计级的重用的想法由来已久,这个领域的一个突破就是设 计模式的提出,软件设计模式的概念得益于一个建筑设计师c h r i s t o p h e r a l e x a n d e r 的工 作,他定义了一种模式语言,成功的描述了建筑物和城市中的建筑布局,许多软件业的 人发现a l e x a n d e r 的工作非常具有吸引力,这导致了九十年代初在软件领域内应用模式 的讨论,在1 9 9 4 年8 月召开的程序模式语言( p l o p ) 会议,它推动了软件模式的发展。 在1 9 9 5 年初,一个被称成为“四人组“的小组( g o n g o f f o u r ) 出版了一本书设计模 式:可重用的面向对象软件的元素,这本书包含了设计模式的一个基本目录,并且确 定了模式为软件学科的一个新领域【1 】。 在开发w e b 应用系统的过程中,经常会遇到这样的问题:如何进行系统的框架设 计才能更有利于模块化的设计与编码、今后功能的扩展以及系统快速有效的维护? 每次的系统开发中,我们都需要根据实际应用寻找一个新的解决方案。为了提高开 发的效率,考虑到应用系统的灵活性、安全性、实用性等,就需要有一种好的设计模式, 一个好的可复用的b s 架构的框架设计作为一种可行的方案来解决这一常见的问题。 m v c 模式是国外用的比较多的一种设计模式,很多的开源项目,就是利用这设计思 想,己将其做成了w e b 框架。w e b 框架有很多,例如t u r b i n e ,j e t s p e e d ,t a p e s t r y , s t r u t s 。 它们各有优点,而且功能强弱也不同,论文只提出一个广泛使用的s t r u t s 框架作为研究 对象。 s t r u t s 框架是个在不断升级中的开源项目,新的版本会不断的增加功能,越来越强大, 它的最新发布版本s t r u t s l 1 已经开始在国内外许多的大型b s 项目中得到应用。 b s 架构的系统可以由多种语言,不同的平台实现,比如微软的n e t ,s u n 的j 2 e e , 本文选择j 2 e e 作为构筑企业应用的平台,以基于m v c 设计模式的s t r u t s 框架在w e b 层的应用为线索展开讨论。由于j a v a 语言的广泛应用,与其相关的技术和各种设计思 想飞速发展,种类繁多。在设计一个系统的时候,面对如此多的技术和设计思想,孰优 孰劣,如何选择昵? 本文又进一步分析了j 2 e e 的体系结构,特别是它所用到的设计模 式,在前人理论的基础上,提出了五层1 3 s 架构分层设计的新观点,并且针对核心层做 了详细的分析和设计,不但讨论了每层可采用的主流技术,而且还给出了建议性的类库 第1 页 西安建筑科技大学硕士论文 ( 包) 设计,这对于b s 系统的设计和开发有很强的指导意义。 1 2 课题研究的背景及内容 作者先后参加了多个大小不同的b s 项目的开发,在这些项目开发的过程中,就体 会到了系统框架设计不合理所带来的苦恼,结构不清晰、代码混乱、模块难以复用、系 统难于扩展、维护。即使系统最后运行起来,开发的代价也远远超过了成本。有多个项 目开发的经验作为积淀,作者通过总结和进一步的学习,以解决这一问题作为目标,从 而确定了以基于m v c 设计模式的s t r u t s 技术在b s 系统中的应用作为不断探索的方向, 并且本文的设计思想在亚洲物流西安研发中心的t m s ( t r a n s p o r tm a n a g e m e n ts y s t e m ) 产品的开发过程中得到了充分的应用,并且取得了成功。 本论文研究的主要内容有: 1 m v c 设计模式研究。 2 j 2 e e 平台应用设计模式研究。 3 s t r u t s 框架综述,特别是分析其m v c 设计模式的实现方式、工作原理和设计思想。 4 在前人理论的基础上,提出了五层b s 架构分层设计的新观点,并且针对核心层做 了详细的分析和设计,不但讨论了每层可采用的主流技术,而且还给出了建议性的类库 ( 包) 设计。 1 3 论文的组织 本论文的章节层次结构如下: 第一章绪论。介绍论文研究的意义、背景、核心内容。 第二章j 2 e e 与设计模式。论述设计模式的概念、要素以及模式的应用如何帮助解 决问题及其优点,最后介绍了m v c 设计模式和j 2 e e 体系结构中应用的设 计模式。 第三章s t r u t s 框架综述。引出框架概念,详细介绍开源的s t r u t s 框架,阐述其m v c 模式的实现方式、设计思想、工作原理及其在w e b 层的应用。 第四章b s 架构分层设计。介绍目前四层b s 架构的体系结构,阐述其分层思想和 主流技术实现。在前人理论的基础上,提出了五层b s 架构分层设计的新 观点,详细阐述了每一层的设计原理,并且每层都给出了建议性的类库( 包) 第2 面 西安建筑科技大学硕士论文 设计。对于各层的实现,本文也都对主流技术做了较全面的归纳、分析, 可作为多层b s 应用技术选型的一个参考。 第五章基于s t r u t s 技术的b s 五层结构在t m s 中的应用。简单介绍了物流行业的 一些基础知识,然后,详细的论述本文提出的分层思想及其相关技术在t m s 中的应用。因为每层的技术实现很多,作者结合商业需求和公司状况等多 种因素,从中选择出一条技术实现的主线,配以简洁的代码片断,层层分 析总结。 第六章 总结了论文所完成的工作和心得体会,并且提出了下一步需要探索和研究 的任务。 第3 页 西安建筑科技大学硕士论文 2 1 设计模式概述 2 j 2 e e 与设计模式 w e b 应用的开发已经成为i n t e r _ n e t 时代的主流应用,但仍然缺乏规范,有效的 方法,常常依赖开发者的喜好和习惯,随着w e b 应用的规模和复杂程度的增加,即席 的、依赖程序员个人能力的开发方式已经不适应大规模w e b 应用开发的需要。于是软 件工程专家提出了w e b 工程的概念,认为w e b 应用的开发仍然需要经过分析、设计、 实现和维护的生命周期,借用软件开发领域中成熟的方法和技术具有十分重要的意义。 但是,由于w e b 应用的特殊性,需要对软件开发中的方法与技术裁剪并注入新的内容, w e b 开发中设计模式的引入,无疑是股新鲜的血液,下面从三个方面具体介绍设计模 式及其相关的概念。 1 模式是什么 模式的概念是最初来源于工程和建筑模式,软件行业的模式概念的普及是由e r i c h g a m m a 、r i c h a r dh e l m 、r a l p hj o h n s o n 和j o h nv l i s s i d s 四人【简称”g o f ”】合著的设计 模式:可复用面向对象软件的基础【d e s i g np a t t e r n s :e l e m e n t so f r e u s a b l eo b j e c t o r i e n t e d s o f t w a r e - - 书而引发的。如今“模式”已经成为全世界软件开发的一个共同话题。 现代科学和工程学能够发展到今天,有赖于规则的制定,模式的研究也不例外。在 讨论模式之前,必须对“模式”这个词加以界定,简而言之,人们在自己的环境中不断 发现问题和寻找问题的解决方案的时候,发现有一些问题及其解决方案不断变换面孔重 复出现,但在这些不同的面孔后面有着共同的本质,这些共同的本质就是模式【”。 那么,模式是不是在某种环境下对某个问题的答案呢? 这不完全对。模式所描述的问题及问题的答案都应当是具有代表性的。所谓具有代 表性,就是说它以不同的形式重复出现,允许使用者举一反三,将它应用到不同的环境 中去。 2 模式的要素【2 】 描述模式需要一定的格式。一般来说,它包含下这些要素: ( 1 ) 模式名:标识模式,增加表达性。 ( 2 ) 问题:描述何时应用这个模式,解释问题与情景。 ( 3 ) 解:不描述具体设计与实现,而是描述模式模板,可以在不同情景中使用。 ( 4 ) 结果:是采用一个模式的结果与取舍。结果对评估不同方法和进行决策至关重要。 第4 页 西安建筑科技大学硕士论文 3 模式的应用及其优点【2 】 一般来说,设计模式可以帮助解决应用程序设计阶段遇到的大多数常见问题,包括: ( 1 ) 标示组件、组件内部结构及组件之间的关系。 ( 2 ) 确定组件粒度及适当交互。 ( 3 ) 定义组件接口。 假如应用需要根据提供的数据返回某个类的实例,此类是多个可能的类中的一个, 就可采用工厂模式。再如,保证一个类有且只有一个实例,并提供一个访问该实例的全 局访问点,那么单例模式完全能够胜任。 在软件开发和设计过程中合理适当的运用设计模式,能大大的提高软件质量,它一 般有以下一些优点: ( 1 ) 模式是实践经验的总结,它提供的解决方案是经过不同时间、不同项目中反复解决 了相似的问题后才最终决定的。因此,模式提供了强大的可重用的机制,避免了开发者 和设计者的重复投资。 ( 2 ) 模式提供了开发者之间用以交流的共同词汇,增进了相互交流的可理解程度,这与 人们在生活中使用共同的词汇交流一样,开发人员能够用模式名来交流。 2 2 m v c 设计模式 m v c 英文即m o d e l v i e w c o n t r o l l e r 。”m o d e l 。代表应用的业务逻辑,n v i e w ”代表 应用的表示,”c o n t r o l l e r “提供应用的处理过程控制,通过这种设计模型把应用逻辑、处 理过程和显示逻辑分成不同的组件实现,这些组件可以进行交互和重用。如图2 1 所示。 方法调用一- 事件 图2 1 【i ”m v c 设计模式 ( 1 ) 模型端 模型便是执行某些任务的代码,而这部分代码并没有任何逻辑决定它对用户端的表 第5 页 一;一;一一一一里塞丝些奎兰坠堡一; ; 一 示方法。模型端只有纯粹的功能性接口,也就是系列的公开方法。通过这些公开的方 法,便可以取得模型端的所有功能。 ( 2 ) 视图端 一个模型端可以有多个视图端,而实际上复数的视图端是使用m v c 的原始动机。 使用m v c 模式可以允许多于一个的视图端存在,并且可以在需要的时候动态的登记上 所需的视图。例如,一个棒图,一个表格均是同组数据的不同的视图端,当用户通过任 何一个视图修改数据时,所有的视图都会按照新数据更新自己。 ( 3 ) 控制器端 m v c 模式的视图端是与m v c 模式的控制器端结合使用的。当用户与相应的视图发 生交互时,用户可以通过视图更新模型的状态,而这种更新是通过控制器端进行的a 控 制器端通过调用模型端的改值方法更改其状态值。与此同时,控制器端会通知所有登记 的视图刷新显示给用户的表示。 2 3 j 2 e e 与设计模式 m v c 设计模式被推荐为s u n 公司j 2 e e 平台的设计模式。在形成了对框架、模式 的简单认知后。接下来主要了解和理解j 2 e e 中应用的设计模式,以期获得j 2 e e 平台 中设计模式的全貌,从中会进一步了解框架、模式、具体的技术、设计一个应用之间的 关系。由于在s u n 公司的网站上有整个j 2 e e 应用模式的详细介绍,重复介绍就没什 么必要了,在此仅给出图2 2 介绍j 2 e e 中应用的设计模式。 由图2 2 可以看出: ( j ) 显示了j 2 e e 技术体系中各种模式之间的关系。在迄今的j 2 e e 模式体系中,定型的 模式有1 5 种之多,它们分布在j 2 e e 技术的不同层次上,相互之间通过一定的方式随 着层次间的交互而交互。 ( 2 ) 体现了j 2 e e 技术是一种框架软件。框架在某种程度上可以认为是一个适用于某个 领域的软件包。这个软件包提供了相应领域的各个问题的解决方法。j 2 e e 是种框架 软件,提供了一组a p i ,供企业级计算之用,并且显示了一种问题的解决次序。 ( 3 ) 隐含了框架与设计模式之间的血肉联系。框架是骨架,设计模式是肉,肉依附于骨 架,框架中会有各种设计模式。 ( 4 ) 蕴含了应用程序设计的理念。本质上设计一个良好可伸缩的应用本身前期工作就是 设计一个框架结构。不过这种框架又是在另一层意义上的框架。这是一类在j 2 e e 技术 ( 框架) 体系内的框架。基于j 2 e e 技术可以设计许多适合更具体应用的框架,这样可 第6 页 西安建筑科技大学硕士论文 以更方便的开发,更高效率的重用。在这神框架内部当然也可以用到若干种、甚至全部 上图中的设计模式。实际上现在已经出现了很多开源组织设计的框架结构,例如论文将 要介绍的s t r u t s 等。 图2 , 2j 2 e e 设计模式 第7 页 ;塑童壅篁型茎奎兰至圭篁圣 ; 3 s t r u t s 框架综述 s t r u t s 项目作为一个设想是c r a i gr m c c l a n a h a n2 0 0 0 年提出的,目标是为利用 j a v a 技术开发基于m v c 模式的w e b 应用提供一个标准模式,改进和提高j s p 、s e r v l e t 、 标签库以及面向对象的技术水平。s t r u t s1 0 在2 0 0 1 年中期被最终发布,现在成为 a p a c h ef o u n d a t i o n 的j a k a r t a 项目的一部分【1 2 】。 s t r u t s 是实现m v c 设计模式的个优秀的应用框架,它具有以下一些优缺点: 优点: 1 具有采用m v c 设计模式的所有可获得的特性和优点; 2 提供了一个方便的方法对应用程序的信息进行国际化: 3 设计良好、功能强大的标记库; 4 开放源码; 5 提供了灵活的体帝l 来处理错误和异常; 缺点: 1 属于纯w e b 层框架,功能有限: 2 开源项目发展很快,但代码、设计变动比较大,利用不当对系统的后续升级、维护 不利: 3 理解和使用框架有一定的难度; 4 视图部分的精力主要集中在j s p 上,以x m l 等多种元素作为视图实现的功能,需 要进一步加强; 3 1 框架的概念和体系结构 伴随着软件开发的发展,可重用、易扩展,而且是经过良好测试的软件组件,越来 越为人们所青睐。这意味着人们可以将充裕的时间用来分析、构建业务逻辑,而非繁杂 的代码工程。于是人们将相同类型问题的解决途径进行抽象,抽取成一个应用框架,这 就是所说的框架 f r a m e w o r k l 。框架与类库不同,框架提供的不是一组功能性的组件。 恰好相反,它提供了一个软件结构,一种业务流程,以及“好莱坞模式”的开发原则一 一“d o n tc a l lu s , w e 1 1c a l ly o u ” 2 3 1 。换句话说,选择框架,就是用自由换便利,你基 本上只需并且只能在框架限制的范围内编写一些业务组件,框架会帮你管理这些组件之 间的协调,在w e b 框架里,这种“自由换便利”的原则就体现为:你必须把业务逻辑 第8 页 西安建筑科技大学硕士论文 放在这里,把显示逻辑放在那里,按照要求把它们组织起来,你甚至必须遵守一定的规 则,不能随心所欲。当然,收获的就是结构更加良好,质量更加可靠的w e b 应用。 通常基于请求响应( r e q u e s t r e s p o n s e ) 模式的应用框架,基本上由以下几个逻辑 单元组成。 ( 1 ) 控制器单元 控制整个框架中各个组件的协调工作,属于中一1 1 , 处理单元,但是它不处理业务逻辑。 ( 2 ) 业务逻辑单元 这是框架所希望解决问题的关键。当然对框架本身来说,这里仅仅只是概念和几个 能够提供服务的基础组件,真正的实现与客户业务逻辑的接轨,还需要开发人员在框架 上再次扩展。 ( 3 ) 数据逻辑单元 绝大多数应用系统都需要涉及到数据交互,这一层次主要包括了数据逻辑和数据访 问接口。 3 2 s t r u t s 的概念和体系结构 s t r u t s 由一组相互协作的类( 组件) ,s e r v l e t 以及j s pt a g l i b 组成。基于s t r u t s 框架 的w e b 应用程序基本上符合j s p m o d e l 2 的设计标准,可以说是m v c 设计模式的一种 实现类型。根据上面对框架的描述,很容易理解为什么说s t r u t s 是一个w e b 框架,而 不仅仅是一些类、标记库的组合。但s t r u t s 也包含了丰富的标记库和独立于该框架工作 的实用程序类。 s t r u t s 拥有自己的控制器( c o n t r o l l e r ) ,同时整合了其它一些技术去实现模型层和视图 层。在模型层,s t r u t s 可以很容易的与数据访问技术相结合,包括e j b j d b c 等。在视 图层,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 ,x m l 等这些表示层组件相结合。 s t r u t sf r a m e w o r k 是对m v c 设计模式的实现,下面分别从模型,视图,控制器三方面 来看看s t r u t s 的体系结构。如图3 1 所示。 ( 1 ) 视图( v i e w ) 控制组件续传h t t p 请求给实现了视图的j s p 文件。j s p 能访问j a v a b e a n s 并生成 结果文档反馈到客户。s t r u t s 提供j s p 标签库( h t m l 、b e a n ,l o 百c 等) 来达到这个目 第9 页 西安建筑科技大学硕士论文 的,并有利于分开表现逻辑和程序逻辑。 ( 2 ) 模型( m o d e i ) 模型以一个或几个j a v a b e a n 的形式存在。这些b e a n 分为三种: f o r mb e a n s ( 表单b e a n s ) 它保存了h t t pp o s t 请求传来的数据,在s t r u t s 里,所有 的f o r mb e a n s 都是a c f i o n f o r m 类的子类。 业务逻辑b e a n s 专门用来处理业务逻辑。 系统状态b e a n s 它保存了跨越多个h t t p 请求的单个客户的会话信息,还有系统 状态,一般为实体对象模型。 ( 3 ) 控制器( c o n t r o | i e r ) 控制器接收客户端的请求,决定执行何种业务逻辑功能来响应请求,然后委派适当 的视窗组件来显示更新后的用户界面。 在s t r u t s 中,基本的控制器组件是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 m a p p i n g ,a c t i o n f o r w a r d 这几个组件协调完成,其中,a c t i o n 扮演了真 正的业务逻辑的实现者,或者说是业务逻辑调用的接口,而a c t i o n m a p p i n g 和 a e t i o n f o r w a r d 则制定了不同业务逻辑或流程的运行方向。 图3 1 s t r u t s 体系结构 第1 0 页 西安建筑科技大学硕士论文 3 3s t r u t s 的工作原理和核心组件 1 s t r u t s 框架的工作原理 用户发出一个+ d o 的h t t p 请求,控制组件接收到这个请求后,首先查找针对这个 请求的动作映射,接着检查是否曾创建过相应的动作对象( a c t i o n 实例) ,如果没有则 生成一个动作对象,控制组件会保存这个动作对象供以后使用。然后调用a c t i o n m a p p i n g 的方法得到a c t i o n f o r m 对象。最后把a c t i o n f o r r n 作为参数传给动作对象的e x e c u t e 方 法,这个方法结束之后会返回给控制组件一个a e t i o n f o r w a r d 对象。控制组件接着从这 个对象中获取下一个视图的路径和重定向属性。 如果为重定向则调用h u p s e r v l e t r e s p o n s e 的方法来显示下一个视图,否则相继调用 r e q u e s t d i s p a t c h e r , s e r v l e t c o n t e x t 的方法续传h t t p 请求到下个视图。 当动作对象运行e x e c u t e 方法时,如果出现错误。动作对象可以保存这些错误信息 到一个e r r o r 对象中,接着调用自身的s a v e e r r o r s 方法把这令错误保存到r e q u e s t 对象的 属性中。最后动作对象调用a c t i o n m a p p i n g 对象的g e t l n p u t 方法从动作映射中获取i n p u t 参数,也就是产生输入的视图,并以这个i n p u t 为参数生成一个a c t i o n f o r w a r d 对象返 回。这个i n p u t 参数的j s p 中一般有 定制标签读取这些错误信息并显示在 页面七。 图3 2s t r u t s 框架的工作流程 2 s t r u t s 框架的核心组件 这几个组件就是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 m a p p i n g 、a c t i o n f o r w a r d 、a c t i o n f o r m 。 第1 l 页 西安建筑科技大学硕士论文 ( 1 ) s t r u t sa c ti o n s e r vi e t a c t i o n s e r v l e t 继承自j a v a x s e r v l e t h t t p f h 却s e r v l e t 类,在s t r u t s 框架中扮演的角色是 控制器。主要负责将h t t p 的客户请求信息组装后,根据配置文件的描述,转发到适当的 处理器。按照s e r v l e t 的标准,所有的s e r v l e t 必须在w e b 配置文件( w e b x m l ) 中声明。 用户向服务器提交请求的时候,实际上信息是首先发送到控制器a c t i o n s e r v l e t ,一旦控制 器获得了请求,就会将请求信息转交给一些辅助类处理,这些辅助类知道如何去处理与 请求信息所对应的业务操作。在s t r u t s 中这个辅助类就是o r g 。a p a c h e s t r u t s a c t i o n a c t i o n 。 通常开发者需要自己继承a c t i o n 类,从而实现自己的a c t i o n 实例。 ( z ) s tr u t sa c t i o r a c t i o n 类的角色,就像客户请求动作和与业务逻辑处理之间的一个适配器,其功能 就是将请求与业务逻辑分开。这样的分离,使得客户请求和a c t i o n 类之间可以有多个 点对点的映射,而且a c t i o n 类通常还提供了其它的辅助功能,比如:认证、日志、数 据验证。 a c t i o n 中最常用的方法是e x e c u t e ( s t r u t s l 0 时,e x e c u t e 对应的方法为p e r f o r m ) 。 控制器收到客户的请求后,将请求转发给一个a c t i o n 实例,如果这个实例不存在,控 制器会首先创建一个,然后调用这个a c t i o n 实例的e x e c u t e 方法。 ( 3 ) s t r u t sa c tio n m a p pin g 控制器接收用户的请求,然后转发。但是,控制器如何知道什么样的信息转发到什 么样的a c t i o n 类去处理呢? 这就需要一些与动作和请求信息相对应的映射配置说明。 在s t r u t s 中,这些配置映射信息是存储在一些特定的x m l 文件中( 比如s t r u t s c o n f i g x m l ) 。 这些配置信息在系统启动的时候被读入内存,供s t r u t sf r a m e w o r k 在运行期间使用,在 内存中,每一个 元素都与o r g a p a c h e s t r u t s a c t i o n 。a c t i o n m a p p i n g 类的一个实例对 应。 下表就是一个配置映射文件s t r u t s c o n f i g x m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论