




已阅读5页,还剩66页未读, 继续免费阅读
(计算机应用技术专业论文)基于mvc模式的struts框架在协同办公系统中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着技术的飞速发展,基于b s 结构的服务端应用程序得到了广泛的应用, 实现w e b 应用的技术和框架也层出不穷。文章以j 2 e e 体系的w e b 开发方法为主 线。从s c r v l c t j s p 的技术原理开始,到结合这两种技术进行w e b 开发的m o d e l 2 结构,再到m v c 设计模式,对w e b 应用技术进行了详细分析。m v c 模式为应 用系统的开发提供了一种分层的体系结构,即:视图层、控制层和模型层,将业 务逻辑和数据表现分离,在实现多层w e b 应用系统中具有明显的优势。 s t r u t s 是一个实现了m v c 模式的w e b 应用框架,它全面减轻了构建多层w e b 应用的负担。轻量级容器使用依赖注入的设计原理,可以使系统主要组件之间的 耦合变松散。s p r i n g 是一种多层的j 2 e e 应用轻量级框架,是为解决企业应用程 序开发复杂性而创建的。持久层框架封装了j d b c 动作,它们以优良的设计大大 提高了数据库访问层的开发效率。h i b e r n a t e 是一个开源的持久层框架,它全面 减轻了数据库开发的复杂度,使系统具有更好的性能和移植性。 基于分层的原理,一个w e b 应用程序被划分为多个独立的层,各层间松散 耦合负责不同的任务。本文对s t r u t s ,s p r i n g ,h i b e r n a t e 框架进行研究,具体 分析各个框架在w e b 应用的不同层次上所发挥的作用。利用s p r i n g 本身“非侵 入性”的特点,将s p r i n g 与s t r u t s 框架及t t i b c m a t c 框架进行整合,形成一个多 层w e b 应用架构。其中s t r u t s 主要负责表现层,完成页面显示、响应用户请求等 功能;s p r i n g 主要负责业务逻辑层,完成应用系统的业务逻辑与事务处理等功能; t t i b c m a t e 主要负责数据持久层,完成与数据层的交互功能。通过整合,充分发 挥s t r u t s ,s p r i n g 和i i i b c r n a t c 框架各自的优势,降低了各层间的耦合度。该框架 不仅拥有s t r u t s 灵活的视图层和控制层,而且兼有s p r i n g 的i o c 与a o p 机制, 因而可以大大提高业务层的重用性和扩展性。在应用实践中,使用整合后的框架, 设计并实施w e b 应用系统的开发,使其业务层的重用性和扩展性得到了极大的 提高。这个整合框架方案在文中提及的办公自动化软件的设计和开发当得到很好 的应用,充分展示了这一架构的优越性。 关键词:m v c 模式,s t r u t s ,h i b e r n a t e ,s p r i n g ,i o c ,a o p ,o r m a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to ft e c h n o l o g y , t h ea p p l i c a t i o np r o g r a mo fs e r v e r b a s e do n b r o w s e r s e r v e ri sw i d e l yu s e d t h e r ea r em a n y t e c h n o l o g i e sa n df r a m e w o r k s i n d e v e l o p i n gw 曲a p p l i c a t i o n t h i sp a p e rd i s c u s s e dt h ej 2 e ew e bd e v e l o p m e n t m e t h o d ss u c ha st h et e c h n i c a lp r i n c i p l eo f j a v as e r v l e t j s pa n dt h em o d e l 2s t r u c t u r e a n dt h em o d e l v i e w c o n t r o l l e rd e s i g np a u e m m v cp a t t e r np r o v i d e sal a y e r e ds t r u c t u r e f o rt h ed e v e l o p m e n to fa p p f i c a t i o ns y s t e m , w h i c hi n c l u d e sv i e w , c o n t r o l l e ra n dm o d e l , a n d s e p a r a t e sb u s i n e s sl o g i ca n dt h ew a y o fd a t ap r e s e n t a t i o n i th a sr e m a r k a b l ea d v a n t a g e i nd e v e l o p i n gm u l t i - t i e rw e b a p p l i c a t i o n s t r u t sw h i c hi m p l e m e n t sm v c p a r e mi saw e ba p p l i c a t i o nf r a m e w o r ka n di t l e s s e nt h eb u r d e no fb u i l d i n gm u l t i t i e rw e ba p p l i c a t i o n l i g h t w e i g h tc o n t a i n e ri s d e s i g n e dw i t hd e p e n d e n c yi n j e c t i o na n dc a nm a k em a i nc o m p o n e n tl o o s ec o u p l i n g d y n a m i c a l l y s p r i n gw h i c hi sd e s i g n e df o rs o l v i n gt h ec o m p l e x i t yo fd e v e l o p i n g e n t e r p r i s ea p p l i c a t i o np r o g r a mi sam u l t i t i e rj 2 e el i g h t w e i g h tf r a m e w o r k f i n a l l y , l a n a l y z e dt h ep e r s i s t e n c el a y e rt e c h n o l o g y t h e p e r s i s t e n c ef r a m e w o r k sw h i c ha r e w e l l - d e s i g n e da n de n c a p s u l a t ej d b ca c t se n h a n c e t h ee f f i c i e n c yo fd a t aa c o e s sa n d g e tm u c hb e t t e rp e r f o r m a n c eb yc a c h em e c h a n i s m h i b e r n a t ej s a l lo p e ns o u r c e p e r s i s t e n c ef r a m e w o r k , i tr e d u c e st h ec o m p l e x i t yo fd e v e l o p i n gd a t a b a s ea n dn l a k e s y s t e mp o r t a b l e b a s e d0 1 1t h em u l t i - t i e rp r i n c i p l eo fw e ba p p l i c a t i o nd e v e l o p m e n taw e b a p p l i c a t i o ns h o u l db ed i v i d e di n t os e v e r a li n d i v i d u a ll a y e r s e a c hl a y e rf o c u s0 nt h e s p e c i f i cr e q u i r e m e n ta n dt h eu s eo fo n el a y e rd on o tr e q u i r et h e 哪o fo t h e rl a y e r t h i st h e s i sd i dr e s e a r c ho i ls t r u t s ,s p r i n ga n dh i b e r n a t ef r a m e w o r k s ,a n da n a l y s e d e a c hf r a m e w o r k sf u n c t i o ni nw e ba p p l i c a t i o nl a y e r u s i n go a eo ft h es p r i n g sa d v a n t a g e s , w h i c hi sc a l l e d ”n o n - i n v a s i o n , i n t e g r a t es p r i n gs t r u t sa n dh i b e r n a t et h e nf o r mam u l t i - t i e rw e b a p p l i c a t i o nf r a m e w o r k i nt h ef r a m e w o r k ,s t r u t st a k ec h a r g eo ft h ep r e s e n t a t i o nl a y e r , c o m p l e t i n g p a g ed i s p l a y i n g a n d a n s w e r i n gu s e r sr e q u i r e m e n t s ,s p r i n g t a k e s c h a r g e o fb u s i n e s s l o g i c ,c o m p l e t i n gt h eb u s i n e s sl o g i ca n dm a 蚰g e m c n to fa p p l i c a t i o np r o g r a m s , l - h b e m a t et a k e s c h a r g eo fd a t ap e r s i s t e n c el a y e r ,c o m p l e t i n gi n t e r a c t i v ew i t h t h ed a t a b a t h i sf r a m e w o r k p o s s e s s e s n o t o n l y f l e x i b l e w m w a n d c o n t r o l l e r o f s t r u t s b u t a l s o i o c a n d a o p o f s p r i n g , s o i t c a n i n c r e a s et h ep o t e n t i a lf o rb u s i n e s sl a y e ri _ l g u s ea n di t s e x t e u s i o ng r e a f l y i np r a c t i c e ,t h ei n t e g a t e d f i r a m e w o r ki nt e r m so ft h ep r i n c i p l eo f i n t e r f a c eo r i e n t e d ”,d e s i g n sa n da c t u a l i z e st h ed e v e l o p m e n t o fw e ba p p l i c a t i o ns y s t e m , i no r d e rt oi m p r o v et h er e u s ea n de x t e n s i o no fb u s i n e s sl o g i c a l l a y e r t h i sf r a m e w o r kh a v eag o o dp e r f o r m a n c ei nd e s i g na n dd e v e l o p m e n to fao f f i c e a d m i n i s t r a t i o ns y s t e m k e yw o r 凼:m v cp a t t e r n ,s t r u t s ,h i b e r n a t e ,s p r i n g ,l o c ,a o f ,o r m i l l 此页若属实请申请人及导师签名。 独创性声明 本人声明,所呈交的论文是我个人在导师指导下进行的研究工 作及取得的研究成果据我所知,除了文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果, 也不包含为获得武汉理工大学或其它教育机构的学位或证书而使 用过的材料与我一同工作的同志对本研究所傲的任何贡献均己 在论文中作了明确的说明并表示了谢意 研究生签名:1 塾查巫晶期丕丑:壁:2 中 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定, 即:学校有权保留送交论文的复印件,允许论文被查阅和借阅; 学校可以公布论文的全部内容,可以采用影印、缩印或其他复制 手段保存论文 ( 保密的论文在解密后应遵守此规定) 研究生签 注:请将 武汉理工大学硕士学位论文 第1 章绪论 1 1 协同办公系统的概述 办公自动化系统是采用i n t e m e t i n t r a n e t 技术,基于工作流的概念,使办公室 的有关事务处理从手工处理和分散文件管理方式转移到计算机网络信息集成自 动化管理方式,帮助企业内部人员方便快捷地共享信息,高效地协同工作;改变 过去复杂、低效的手工办公方式,从而达到信息共享、提高工作效率和工作质量 的目的,实现迅速、全方位的信息采集、信息处理,为企业的管理和决策提供科 学的依据。办公自动化的实现程度已经成为衡量企业实现现代化管理的重要标准 之一。办公自动化系统经历了第一代以数据为处理中心的m i s 系统,第二代以 工作流为中心的办公自动化系统,到上世纪9 0 年代末,伴随着协同管理思想的 兴起,第三代协同工作型办公自动化系统开始出现。第三代办公自动化系统强调 以知识管理为核心,通过工作流自动化及知识管理相结合的信息系统来实现部门 之间协同、业务流程与办公流程协同、跨越时空协同等,即协同办公系统。 1 2 课题的来源 论文的研究以为某大型企业做的协同办公系统项目为背景。本人自从2 0 0 5 年 下半年以来,查阅大量相关文献,系统学习了w e b 服务、s t r u t s 、s p r i n g h i b e r n a t e 等相关知识。同时,在实际设计开发过程中,积极认真地开展工作,构建一个基 于m v c 模式的,集成s t r u t s 、s p r i n g 和h i b e r n a t e 的w e b 服务架构,并在此项目 中加以应用。 1 3 研究内容 本课题首先研究了s e r v l e t j s p 技术的体系结构和关键技术;同时对s t r u t s 框 架、h i b e r n a t e 、s p r i n g 框架,尤其是s p r i n gl o c 、a o p 及声明式事务管理进行相 应的研究工作。在对已有研究成果的深入研究基础之上,探讨目前构建w e b 服 务应用的常见方法,并对其做出分析,思考运用s t r u t s + s p r i n g + h i b e r n a t e 架构的 优势来改进w e b 服务体系结构。具体研究内容如下: 1 研究了s e r v l e t j s p 技术的体系结构,关键技术以及w e b 应用开发技术的 演进与发展。 武汉理工大学硕士学位论文 2 研究m v c 模式和s t r u t s 框架,对s t r u t s 框架的核心组件和控制流程做了 详细的分析和阐述。 3 对s p r i n g 框架的体系结构进行了分析,深入理解反向控制原理和面向切 面编程思想重点研究了s p r i n gi o c 容器和声明式事务管理。研究了分层架构的设 计思路及s t r u t s 、s p r i n g 和h i b e r n a t e 集成的架构的设计和实现。 4 应用集成架构,完成对协同办公系统的设计和实现。 1 4 论文结构 本文共分为八章,各章节主要内容安排如下: 第一章:绪论。介绍协同办公系统的概述、课题的来源、研究内容以及论文 各章节的组织结构。 第二章:s e r v l e t j s p 技术。讨论了s e r v l e t j s p 技术的体系结构和关键技术以 及w e b 应用开发技术的演进与发展。 第三章:m v c 模式与s t r u t s 框架。阐述了m v c 模式的设计思想,研究了s t r u t s 框架的核心组件和控制流程等关键技术。 第四章:s p r i n g 框架。研究了s p r i n g 框架的体系结构,反向控制原理及面向 切面编程思想,重点研究了s p r i n gi o c 容器和声明式事务管理。 第五章:h i b e r n a t e 技术。讨论了持久层框架技术,重点研究了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 的集成架构。讨论了集成架构的设计和 实现,以及在协同办公系统中的具体应用。 第七章:协同办公系统设计与实现。以工作流定义功能模块为代表,从数据 库、业务逻辑层、持久层等几个方面详细阐述了系统的设计与实现。 第八章:总结与展望。 2 武汉理工大学硕士学位论文 第2 章s e r v ie t o s p 技术 2 1 s e r v i e t 技术概述 s e r v l e t 是平台无关的服务器端组件【l 】,运行在s e r v l c t 容器中。s e r v l c t 容器负 责s e f v l e t 和客户的通信以及调用s e n ,l c t 的方法,s e r v l e t 和客户的通信采用“请 求响应”的模式。当客户机发送请求至服务器时,服务器可以将请求信息发送 给s e r v l c t ,并让s e f v l e t 建立起服务器返回给客户机的响应。当启动w e b 服务 器或客户机第一次请求服务时,可以自动装入s e r v l e t 。装入后,s e r v l c t 继续运 行直到其它客户机发出请求。 s e r v l c t 技术包含两个j a v a 包,分别是j a v a 】【r v l c t 和j a v 醒s c r v l c t h t t p 。其中 j a v 强s e l e t 中定义了所有s e r v l e t 类都必须实现或扩展的通用接口和类。 j a v 缸辩r v l e t h t t p 包中定义了采用h 兀甲协议通信的h t t p s e r v l c t 类。s e n r l e t 技术 的核心是j a v 缸r v l e t s e r v l e t 接口,其中定义了代表s e r v i e t 生命周期的三个方法, 如图2 1 所示: ( 1 ) i n i t 0 方法完成s e r v l e t 初始化。s e f v l c t 在服务器启动时或s e n r l e t 被访问 时加载s e n ,l c t 。装入s e r v i c t 后,容器创建一个s e r v l e t 实例并且调用s e r v l e t 的j n i t o 方法。 ( 2 ) s e r v i c e 0 方法。当客户请求到达时,容器调用s e r v l e t 的s e f v i c e 0 方法处 理请求并进行响应。 ( 3 ) d c s t r o y o 方法。当w e b 服务器和容器关闭时,容器调用s e n ,l c t 的d c s n d y o 方法销毁s e r v l c t 对象。 图2 1 s e r v l c t 的生命周期 3 武汉理工大学硕士学位论文 与传统c g i 【2 l 技术相比s e r v t e t 技术有以下优点: ( 1 ) s e r v l e t 技术比传统c g i 技术效率更高。传统的c g i 技术对予每一个 h t f p 请求都要产生一个新进程。s e r v l e t 技术对于每一个请求产生j a v a 线程来响 应。 ( 2 ) s e r v l e t 技术比传统c g i 技术功能更强大。s e r v l e t 能够方便地处理h t m l 表单数据,也能够读取和设置h n 甲头信息,并且能够处理c o o k i e s 、跟踪s e s s i o n 等其他功能。 ( 3 ) s e r v l c t 技术比传统c g i 技术的调用时间更短。 ( 4 ) s e r v l e t 技术比传统c g i 技术更加安全。 s e r v l e t 的最大缺点就在于将页面显示逻辑和业务逻辑混合在一起,使得 s e r v l e t 代码难以编写和维护。为解决这个问题,s u n 提出了一个将脚本和模板技 术结合到一个组件中的服务器页面技术j a v a s e r v e rp a g e s 。为创建j s p 页面。开发 者按创建h t m l 页面类似的方式创建页面,使用相同的h t m l 语法。为将动态 内容引入页面,开发人员可以将脚本元素置入页面之中。 2 2 j s p 技术概述 j s p 是j a v as e r v e rp a g e s 的缩写,是由s u n 公司倡导,许多公司参与,于1 9 9 9 年推出的一种动态网页技术标准【。j s p 的生命周期与静态h t m l 文档不同。当 客户端请求一个j s p 页面,w e b 服务器首先解释j s p 页面,以便在将解释后的文 档发送回浏览器之前生成动态的内容。 j s p 规范将管理j s p 传输的服务器端进程称为“j s p 容器”。按照面向对象的 说法,容器是一个类或者组件,用于组织其他类或组件。容器提供了组件在其中 生存和活动的总体运行时环境。它们管理组件的生存期并向组件提供不同的服 务。此外,容器还协调组件与更大的运行时环境之间的交互。j s p 容器将j s p 转 换为j a v a 服务器小程序代码,然后将结果编译和加载到服务器小程序容器中。 它还协调服务器小程序容器与编译过的j s p 之间的关系。服务器小程序容器为 j a v a 服务器小程序提供运行时环境。 j s p 的生命周期主要包括初始化、请求处理和中止。 初始化:在客户端的一次请求该j s p 页时,调用j s p l n i t 0 方法。 请求处理:当客户请求到达时,容器调用i s p s e r v i c e 0 方法。该方法是j s p 页 面转换成s e r v l e t 时自动转换成的。 中止:当w e b 服务器和容器关闭时,容器调用j s p 的j s p d e s t r o y 0 方法。 j s p 执行流程如图2 2 所示。当用户在客户端发出请求时,通过w e b 服务器 传到j s p 容器,j s p 容器将判断j s p 页面在当前j s p 容器中是否是第一次请求。 4 武汉理工大学硕士学位论文 如果是第一次请求,则将j s p 文件编译成s e r v l e t 文件以应答客户请求,否则需 判断j s p 页面是否做过修改,如果做过修改,则需编译j s p 文件,否则无需编译, 直接调用上次编译后的应答类进行客户端响应。 图2 2j s p 执行流程示意图 在早期的j a v aw e b 应用中,j s p 文件负责业务逻辑、控制网页流程并创建 h t 札。j s p 文件是一个独立的的模块,自主完成所有任务。这在w e b 开发中带来 了一系列的问题,h t 札代码和j a v a 程序混合在一起,编写j s p 文件的开发人员 必须既懂得网页设计,又精通j a v a 开发,但是同时具有两种才能的人并不多见。 j s p 作为自主独立模块存在如下的问题: ( 1 ) 流程逻辑内嵌在页面中。要理解应用程序的整个流程,必须浏览所有 页面。在页面很多的情况下,完全弄清楚整个应用的流程变得十分困难。 ( 2 ) 调试困难。h t m l 标记、j a v a 代码和j a v a s c r i p t 代码都集中在一个网页 中,使得调试变得相当困难。 ( 3 ) 强耦合。业务逻辑可能分布在多个网页中,因此对业务逻辑或者数据 的修改可能牵涉相关的多个网页。 武汉理工大学硕士学位论文 2 3 j s pm o d e l 2 体系结构 为了解决上述j s p 技术的不足之处,s u n 公司制定了一种规范即m o d e l 2 体 系结构1 4 1 。j s pm o d e l 2 体系结构是一种联合使用j s p 与s e r v l e t 技术来提供动态 内容服务的方法。它吸取了j s p 和s e r v l e t 两种技术各自的突出特点,用j s p 生 成表示层内容,让s e r v l e t 完成深层次的处理任务。s e r v l e t 充当控制器的角刨引, 负责处理用户请求,创建j s p 页内没有的处理逻辑,负责检索原来由s e r v l e t 创 建的j a v a b e a n 对象,从s e r v l e t 中提取动态内容插入静态模版。这是一种有突破 性的软件设计方法,它清晰地分离了页面呈现和功能实现,明确了角色定义和开 发者与网页设计者的分工。在具有一定负责程度的项目中,m o d e l 2 体系结构的 优势发挥得更加明显。m o d e l 2 体系结构如图2 3 所示。 霹 求( 控制器) s e r v l e t 气 浏 铡纯 览 。器、 嚣 a 虑腼矾一 o l 氆 菇 j s p 一j 、。 w 曲撇务器 应娜服务器和数弼库 图2 3j s pm o d e l 2 体系结构图 6 武汉理 大学硕士学位论文 第3 章m v c 模式与s t r u t s 框架 3 1m v c 模式 m v c 英文是m o d e l v i e w c o n t r o l l e r 的缩写,它是目前非常流行的一种软件设 计模式1 5 j 。m v c 的设计思想是将应用的输入、处理和输出流程进行强制的分离。 它将应用程序分为独立的模型( m o d e l ) 、视图( v i e w ) 和控制器组件。每种视 图可能在同一时间显示给不同的用户。应用必须保证在其下面的数据或者模型改 变时视图的更新。为改变模型,用户提交一个请求给控制器,由控制起来配合改 变模型。数据视图必须跟着改变,以反映最近的模型改变状态。m v c 首先被应 用在s m a l l t a l k - 8 0 环境中,是许多交互和界面系统的构成基础,甚至在微软的m f c 基础类中的文档视图结构也遵循t m v c 的思想。现在随着网路的飞速发展, m v c 模式在w e b 应用开发中也得到了广泛的应用。图3 1 显示了模型、视图和控 制器这三个模块各自的功能以及它们的相互关系。 图3 1 m v c 设计模式 控制器接收用户的输入并调用模型和视图去完成当前的请求。当w e b 用户单 击w e b 页面中的提交按钮发送来h t m l 表单时,控制器接收请求并调用相应的 模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。 模型是应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型能为 多个模型提供数据。由于一个模型可被多个视图重用,所以提高了应用的可重用 性。 7 武汉理工大学硕士学位论文 视图是用户看到并与之交互的界面。视图向用户显示相关数据,并能接收用 户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务 状态,但不能改变模型。视图还能接收模型发出的数据更新事件,从而对用户界 面进行同步更新。 m v c 模式的处理过程1 6 j 是,首先,控制器接受用户请求,并决定应该调用哪 个模型来进行处理,然后,模型根据用户请求进行相应的业务逻辑处理,并返回 数据。最后,控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现 给用户。 w e b 应用中的m v c 模式与传统意义的m v c 模式还是有一些区别的。在传统意 义的m v c 模式中,模型、视图和控制器相互连接成一个三角形。当模型组件发 生改变时,会通知视图作相应的改变以保证模型中的数据与视图所呈现的状态相 一致,这个过程不需要控制器参与其中。在w e b 应用条件下,视图进行状态查询 的操作有所改变,绝大多数情况下,w e b 应用是按层模式设计的。层内的对象可 以和同一层或者相邻层的对象进行通信。在一个复杂应用中,这可以在添加组件 时,防止依赖关系呈指数增长。在设计w e b 应用时,分层是一个核心模式。在分 层模式中,状态改变和状态查询的职责控制器来负责。因此,w e b 应用使用一种 比传统m v c 模式更加“扁平”的模式。控制器被夹在表现层和应用逻辑之间。产 生这样的区别的一个根本原因是由作为w e b 应用的基础的h t t p 协议的特点决定 的,在m p 协议中,客户端发出请求然后服务器端接收请求并产生响应,如果客 户端没有发出请求或者服务器端没有收到请求就不会有响应产生。在分层的w e b 应用中,控制器位于视图和模型之问,当视图显示动态内容时需要通过控制器来 获取数据,而不能直接从模型层获得,这样也就解除了视图与模型之间的耦合。 3 2 s t r u t s 框架 j a k a r t a 是a p a c h es o f t w a r e 的一个研究开发j a v a 产品的工程,主要为j a v a 开发者提供各种开发工具及软件框架。s t r u t s 是j a k a r t a 工程提供的用于开发 w e b 应用软件的框架”1 。它的创建者希望改进和提高s e r v l e t ,j s p 、标签库、以 及面向对象的技术水平。它的目的是使运用m v c 模式。1 开发w e b 应用的时间减少。 其将m v c 模式所具有的“分离业务逻辑和显示逻辑”的能力充分发挥,完全实现 了m o d e l 2 ,并很好的帮助j a v a 开发人员开发j 2 e e w e b 层。s t r u t s 是在j s p l h o d e l 2 基础上实现的一个m v c 框架,是m v c 架构技术的一种具体实现,是a p a c h e 公司 2 0 0 2 年5 月作为公司的j a k a r t a 项目的组成部分问世,项目的创立者希望通过 对该项目的研究,改进和提高j s p ,以及面向对象程序设计的技术水平。它是一 种符合m v c 模式的j s p 开发技术,是对j s p 开发技术的继承和发展,包含了丰富 8 武汉理工大学硕士学位论文 的标记库和独立于该框架工作的实用程序类。在s t r u t s 框架中,模型由实现业 务逻辑的j a v a b e a n 或者e j b 组件咖构成,控制器由a c t i o n s e r v l e t 和a c t i o n 来 实现,视图由一组j s p 文件构成。图3 2 显示了s t r u t s 实现的m v c 框架。 竺:只l 鬟卜 一竺竺卜 ( 模硬) j a v a b e a n e 旧l 忑斗 l 二_ j 、。 图3 2s t r u s t 实现的m v c 框架 3 3 s t r u t s 的核心组件 s t r u t s 的核心a p i 包括a c t i o n s e r v l e t ,a c t i o n f o r m ,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 ,它们构成了s t r u t s 框架中的控制器组件、视图组件和模型组 件【1 0 l 。 s t r u s t 控制器组件的各项工作是由多个不同的组件来实现的,其中包括了 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 。 ( 1 ) a c t i o n s e r v l c t 类:是s t r u t s 的核心控制器,它的职责是把m 邛消息打 包并传送到框架中相应的处理器。和任意的j a v as e r v l e t 一样,a c t i o n s e r v l e t 必 须在w e b 应用程序所使用的部署描述文件w e b x m l 中配置。一旦控制器收到客 户请求,就会把这个请求的处理委托给某个由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 类派 生的辅助类,由这个辅助类执行与请求动作相关的业务操作。 ( 2 ) a c t i o n 类: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 类 在调用业务操作之前还可以完成认证、日志记录和会话验证等功能。a c t i o n 类最 重要的一个方法就是e x e c u t e 0 方法,在控制器收到来自用户的请求后,就会调用 e x e c u t e o 方法,进而完成相应的业务操作。 ( 3 ) 配置文件s t r u t s - c o n f i g x m l “”:s t r u t s 应用的各个组件及其关系都在这个 文件中声明,可以说这个配置文件是整个s t r u t s 应用程序的枢纽。 9 武汉理工大学硕士学位论文 ( 4 ) a c t i o n m a p p i n g 类:当控制器接收到一个请求,a c t i o n s e r v l e t 做的第一 件事情就是查找a c t i o n m a p p i n g 来决定调用哪一个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 根据s t r u t s c o n f i g x m l 文件创建的j a v a b e a n 。我们给出了具体的x m l 配置文件,但运行时,s t r u t s 引用的是对象,而不是x m l 文档。配置文件中的 每个a c t i o n 元素的信息在内存中都会被表示成o r d a p a c h e s t r u s t a c t i o n a c t i o n m a p p i n g 类的实例。 ( 5 ) a c t i o n f o r w a r d 类:在a c t i o n 类的e x e c u t e 0 方法执行完成后,会返回一 个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 f o r w a r d 类类型的返回值,它表示的是一个目标, 也就是在a c t i o n 完成之后控制器要转交控制权的地方。不是在程序代码中指定 具体的j s p 页面,而是在配置文件中以声明的方式把某个动作的转发映射与j s p 页面相关联,然后在应用程序中使用对应的a c t i o n f o r w a r d 对象。 s t r u t s 的视图组件包括了j s p 页面,a c t i o n f o r m ,s t r u t s 标记等。a c t i o n f o r m 对象用来在用户和业务层之间传输用户输入的数据。控制器从请求中收集输入数 据,再将这些表单数据填入a c t i o n f o r m 实例中,这个a c t i o n f o r m 实例被一个 a c t i o n 对象使用。s t r u t s 框架提供了6 个核心标记库,供用户的应用程序使用。 每个标记库有不同的用途,可以单独使用也可以互相搭配使用。s t r u t s 框架定义 的标记库有h t m l 标记库、b e a n 标记库、l o g i n 标记库、n e s t e d 标记库、t e m p l a t e 标记库以及t d e s 标记库。 s t r u t s 框架在模型组件上没有太多支持,有很多框架和组件模型可以用来处 理应用程序在业务领域的需求,包括e j b ( e n t e r p r i s ej a v a b e a n s ) 和j d o ( j a v ad a t a o b j e c t s ) “”或者也可以使用一般的j a v a b e a n s 和o r m 框架。 3 4 s t r u t s 的控制流程 对于每个具体的w e b 应用来说,根据不同的问题,不同的环境,在不同的方 式下,控制流程也会有所区别,很难表现一个真正固定的控制流。但是对于所有 的采用s t r u t s 框架的w e b 应用都还是要遵循一个通用的秩序“”。s t r u t s 的请求一 响应流程如图3 4 所示。 1 0 武汉理工大学硕士学位论文 图3 4s t r u t s 请求一响应流程 1 用户请求匹配a c t i o nu r i 的路径( 1 ) 。 2 容器将请求传递给a c t i o n s e r v l e t 。 3 如果是模块化应用,a c t i o n s e r v l e t 选择响应的模块。 4 a c t i o n s e r v l e t 查询路径的映射。 5 如果映射标明了f o r mb e a n ,a c t i o n s e r v l c t 则判断是否已经有一个实例,或 者创建一个新的实例( 1 1 ) 。如果己经有一个f o r mb e a n , a c t i o n s e r v l e t 将 重新对它进行设置,并根据 r r r p 请求重新组装。 6 如果m a p p i n g 的v a l i d a l e 属性值为t r u e ,它将调用f o r mb e a n 的v a l i d a t e 方 法( 1 2 ) 。 7 如果失败,s e r v l e t 将控制转发到i n p u t 属性标明的路径,同时控制流终止。 8 如果m a p p i n g 标明一个a c t i o n 类型,并且它已经存在或已经实例化,则 被重用( 1 3 ) 。 9 a c t i o n 的p e r f o r m 或e x e c u t e 方法被调用,并传递一个实例化的f o r mb e a n ( 或 者n u l l ) 。 1 0 a c t i o n 组装f o r mb e a n ,调用业务对象以及进行其他操作( 1 3 1 1 3 4 ) 。 1 1 a c t i o n 返回一个a c t i o n f o r w a r d 给a c t m n s e r v l c t ( 1 3 5 ) 。 1 2 如果a c t i o n f o r w a r d 指向另一个a c t i o nu r i ,那么重新开始;否则,显示 页面或者其他资源,流程结束。通常,结果会是一个j s p 页面、j a s p e r 或 其它类似技术( 非s t r u t s ) 加工的页面。如果j s p 使用s t r u t sh t m l 标记,并 1 l 武汉理工大学硕士学位论文 且在请求中看到正确的a c t i o n f o r m ( 1 1 ) ,那么他们会从a c t i o n f o r m 中组装 h t m l 控件。否则, 标记将重新创建一个。从s t r u t s1 1 开始, 如果f o r m 标记自行创建一个a c t i o n f o r m ,它将调用a c t i o n f o r m 的r e s e t 方法,如果只是创建一个空白的表单( 1 1 ) ,则可以使用标准的 f o r w a r d a c t i o n 通过a c t i o n 来传递控制,然后离开页面。 武汉理工大学硕士学位论文 4 1 s p r i n g 简介 第4 章s p r in g 框架 s p r i n g 是一个轻量级的反向控制( i o c ) 和面向切面编程( a o p ) 容器框架“”。 s p r i n gi o c ,借助于依赖注入设计模式,使得开发者不用理会对象自身的生命周 期及其关系,而且能够改善开发者对j 2 e e 模式的使用。s p r i n ga o p “”,借助于 s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州医科大学第三附属医院第十三届贵州人才博览会引才5人模拟试卷附答案详解(黄金题型)
- 2025黑龙江黑河市爱辉区花园社区卫生服务中心招聘非事业编制人员7人考前自测高频考点模拟试题带答案详解
- 2025湖南省儿童医院高层次人才公开招聘16人模拟试卷及答案详解(夺冠)
- 2025北京市昌平区人民法院招聘辅助书记员2人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025北京市海淀区中关村第二小学科学城北区分校招聘考前自测高频考点模拟试题及答案详解(有一套)
- 2025年甘肃省兰州眼科医院(兰州市第一人民医院眼科)招聘模拟试卷带答案详解
- 2025年中国环保绝缘管行业市场分析及投资价值评估前景预测报告
- 2025年甘肃酒泉玉门市招聘村级后备干部模拟试卷(含答案详解)
- 2025第十三届贵州人才博览会贵州水利水电职业技术学院引进人才12人模拟试卷(含答案详解)
- 2025年中国化成铝箔行业市场分析及投资价值评估前景预测报告
- 中国河流黄河课件
- 2025年兵团职工考试试题及答案大全
- 《劝学》理解性默写课件-统编版高中语文必修上册
- 经口腔镜甲状腺切除术
- 煤矿回收材料管理制度
- DB32T 5124.1-2025 临床护理技术规范 第1部分:成人危重症患者目标温度管理
- DB34T 4985-2025“多规合一”实 用性村庄规划编制规程
- 山东省威海市荣成市实验中学(五四制)2024-2025学年八年级上学期期末考试数学试题(含部分答案)
- 2025年云南事业单位a类真题及答案
- 《非甾体抗炎药物》课件
- 烟道供货及安装合同模板
评论
0/150
提交评论