已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 基于a j a x 和s s h 集成框架的国有资产管理系统 摘要 随着计算机和网络技术的高速发展,当今时代信息化的程度越来越 高,而对于w e b 应用的要求也就越来越高。首先,对于大型的信息化系统 而言,软件的存在同时也是信息的延续,所以应当考虑到程序的可重用性、 扩展性和后期维护的便利性。m v c 模式把系统进行分层,使系统层次清晰, 解耦良好,便于扩展和维护,所以我们可以寻求一种基于m v c 模式的设计、 开发方案。随着w e b 2 o 的兴起,如何提高用户的体验成为新的命题。针 对这些问题,本文根据w e b 应用的发展趋势,提出了s s h ( s t r u t s 2 + s p r i n g + h i b e r n a t e ) 的框架整合方案,并将a j a x 技术融入到这个框架中去,进 一步提高了应用的性能。 对于系统的结构化问题,主流的企业应用开发平台j 2 e e 本身提供了 一些编程框架,如e j b 容器等。但是e j b ( 至少3 o 以前) 属于重型的容 器,它的模型部署起来非常复杂,这样开发人员的大量时间都浪费在开发 程序架构上。由此涌现出了大量的开源框架,使用这些框架可以显著改善 w e b 系统结构,简化开发流程,提高代码的重用率,在摒弃e j b 繁琐的配 置和部署过程的同时,以一种更加轻巧的方式保证了系统的稳定性和可靠 性。在目前出现的繁多框架中,他们都有着各自的优点,本系统选择了 s t r u t s 2 作为m v c 框架,使用s p r i n g 的i o c 容器对各组件进行管理,使 用h ib e r n a t e 作为数据持久化的解决方式。 摘要 传统的w e b 应用还存在着以下问题:首先,客户端的请求是独占式的, 如果前一个请求没有等到完全响应,那么后面的请求就不能发送,在等待 服务器的响应期间,浏览器将一片空白;其次,传统的w e b 应用基本上采 用新请求对应着一个新的页面的方式,这样会造成页面的频繁刷新,加重 了网络的负担;另外,正是由于需要频繁的刷新页面,所以页面不能太大, 这样就使页面的表现往往不够丰富。在软件发展日新月异的今天,这些不 足逐渐成为w e b 应用发展中的障碍。 a j a x 的提出很好的解决了这方面的问题。a j a x 是w e b 2 。0 技术热潮中 的核心技术,它是一种综合的客户端技术,它最大的优势在于同服务器之 间的异步交互。即浏览器在发送请求后,无需等待服务器响应,可以继续 原来的操作,服务器传来的响应也并不是整个新的页面,而是客户真正所 需的数据。这种交互方式有效的减轻了服务器和带宽的负担 本文提出了将a j a x 技术同s s h 框架完美整合无缝连接的方案,并将 这种方案应用到国有资产管理系统的开发中去,以实际应用展示了这种结 合所带来的巨大优势。 关键字:a j a x ,s t r u t s2 ,s p r i n g ,h i b e r n a t e ,框架,资产管理系统, 一 j q u e r y a b s t r a c t n a t i o n a l i z e da s s e t sm a n a g e rs y s t e mb a s e d o na j a xa n ds s hi n t e g r a t e df r a m e w o r k 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 f c o m p u t e ra n dn e t w o r kt e c h n o l o g y , t h e i n f o r m a t i o n - b a s e dd e g r e ei m p r o v e sr a p i d l yn o w a d a y s ,s oa st ot h ed e m a n do f w e ba p p l i c a t i o n f i r s to fa l l ,t h ee x i s t e n c eo fs o f t w a r em e a n st h ec o n t i n u o u so f i n f o r m a t i o nt ot h ei n f o r m a t i o ns y s t e m s ot h er e u s a b i l i t y , e x p a n s i b i l i t ya n d m a i n t a i n a b i l i t yo ft h es o f t w a r em u s tb ec o n s i d e r e d m v cm o d ed i v i d e sa s y s t e mt os o m el a y e r , w h i c hm a k et h eh i e r a r c h yc l e a r l ya n de a s yt oe x t e n da n d m a i n t a i n w i t ht h er i s eo fw e b 2 0 ,t h eu s e re x p e r i e n c ec o m e st oan e wi s s u e t or e s o l v et h e s ep r o b l e m s ,t h i sp a p e rp r e s e n tas c h e m eo f u s i n gs t r u t s 2a n d s p r i n ga n dh i b e r n a t ef r a m e w o r k sw i t ha j a xt e c h n o l o g y , w h i c hi m p r o v et h e p e r f o r m a n c eo f t h i sa p p l i c a t i o n t or e s o l v et h ep r o b l e mo f s y s t e mh i e r a r c h y , j 2 e ep r o v i d es o m e f r a m e w o r k s ,s u c ha se j bc o n t a i n e r e j bi sak i n do fh e a v yc o n t a i n e r , s ot h e d e p l o y i n go ft h em o d e li sv e r yc o m p l i c a t e d a sar e s u l t ,p l e n t yo ft i m ea n d s p i r i tw a sw a s t e dt od e v e l o p i n gt h ea r c h i t e c t u r e t h e r e f o r e ,m o s to p e ns o u r c e f r a m e w o r k sw e r er a i s e d t h e s ef r a m e si m p r o v et h ea r c h i t e c t u r eo ft h es y s t e m , s i m p l i f yt h ed e v e l o pp r o c e s s ,a d v a n c et h er e u s i n go f c o d e s o no n eh a n d ,i t a b s t r a c t a b a n d o n st h ec o m p l i c i t yo fe j b o nt h eo t h e rh a n d ,i tm a k e st h es y s t e ms t a b l e a n dr e l i a b l et om o s te x t e n t t h e r ea r es e v e r a lo ff r a m e si nu s en o w a d a y s ,t h e s e f r a m e so w n st h e i rr e s p e c t i v em e r i t s t h i sp a p e rc h o o s e ss t r u t s 2a st h em v c a r c h i t e c t u r e ,u s i n gi o cc o n t a i n e ro fs p r i n gt om a n a g et h ec o m p o n e n t s ,u s i n g h i b e r n a t ea st h er e n o v a t i o no f p e r s i s t e n c el a y e r t h e r ea r es t i l ls o m e p r o b l e m si nt h et r a d i t i o n a lw e ba p p l i c a t i o n f i r s t ,t h e r e q u e s to f c l i e n ti sm o n o p o l y t h er e q u e s tw i l ln o tb es e n di ft h i si sn o r e s p o n s eo ft h ep r e v i o u sr e q u e s t i nt h ep e r i o do fw a i t i n gf o rt h er e s p o n s e ,t h e e x p l o r e ro f u s e r si sb l a n k s e c o n d ,an e wr e q u e s ta l w a y sc o r r e s p o n d st oan e w w e bp a g ei nt h et r a d i t i o n a lw e ba p p l i c a t i o n i tw i l lm a k et h ep a g er e f r e s h f r e q u e n t l y , w h i c hi sah e a v yb u r d e nt on e t w o r k a sar e s u l t ,f o rt h en e e do f f r e q u e n t l yr e f r e s h i n g ,t h ew e bp a g e sm a yn o tb et o ob ig ,w h i c hl e a dt ot h e l a c ko fp l e n t yi nt h ew e bp a g e s i nt h i st i m e ,i tc o m e st oa no b s t a c l eo ft h e d e v e l o p m e n ti nw e ba p p l i c a t i o nl i t t l eb yl i t t l e t h ep r e s e n to f a j a xr e s o l v et h e s ep r o b l e m s a j a xi st h ec o r et e c ho fw e b 2 0r u s h i ti sak i n do fi n t e g r a t e dt e c h n o l o g ya tc l i e n t s i d e t h eb i g g e s tm e r i t o fa j a xi st oi n t e r a c t i n gb e t w e e nc l i e n ta n ds e r v e ra s y n c h r o n o u s l y a f t e r s e n d i n gar e q u e s ta tc l i e n t ,t h i si sn ou s et ow a i t i n gt os e n dn e x tr e q u e s t t h e r e s p o n s eo fs e r v e rn ol o n g e ran e wp a g e ,b u tt h ed a t af o rn e e d t h i sk i n do f i n t e r a c t i v ed e c r e a s e st h eb u r d e no fs e r v e ra n db a n d w i d t he f f e c t i v e l y t h i sp a p e rp r e s e n tas c h e m eo fi n t e g r a t ea j a xa n ds s hf r a m e w o r k s f u r t h e ro np u t t in gi ti n t ou s eo nt h en a t i o n a li z e da s s e t sm a n a g e s y s t e mt o a b s t r a c t s h o wt h ea d v a n t a g eo ft h i sk i n do fi n t e g r a t i o n k e yw o r d s :a j a x ,s t r u t s2 ,s p r i n g ,h i b e r n a t e ,f r a m e w o r k ,a s s e t sm a n a g e s y s t e m ,j q u e r y 北京化工大学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本 论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文 的研究做出重要贡献的个人和集体,均己在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 作者签名: 嘶一一 日期: 关于论文使用授权的说明 学位论文作者完全了解北京化工大学有关保留和使用学位论 文的规定,即:研究生在校攻读学位期问论文工作的知识产权单 位属北京化工大学。学校有权保留并向围家有关部门或机构送交 论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以公 布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。 保密论文注释:本学位论文属于保密范围,在上年解密后适用 本授权书。非保密论文注释:本学位论文不属于保密范围,适用本授 权书。 作者签名: 壑l 凯日期:2 业:江。掣 导师签名:丝查箜日期: 笙生:! f 第一章绪论 1 1 研究背景和意义 第一章绪论 国有资产管理系统是一个典型的信息管理系统。信息管理系统的发展从最初诞生 至今主要经历了如下四个阶段:从最早的单机系统、到后来的文, f - t :i h 艮务器( f i l e s e r v e r , f s ) 系统,再到客户机h i 务器( c l i e n t s e r v e r ,c s ) 系统,直到现在基于w e b 应用的浏 览器服务器( b r o w s e r s e r v e r ,b s ) 系统t 。 随着信息技术的飞速发展,最初的单机系统已经远远不能适应当今这个网络化时 代的发展,所以基于网络的应用系统逐渐成为了信息管理系统中的主流。基于网络的 管理系统中主要经历了c s 结构系统和b s 结构系统的变迁。 早期的w e b 应用系统大多使用c s ( 客户机月艮务器模式) 结构。c s 结构的应用软 件分为客户端和服务器两层。客户端需要安装、部署一些应用程序,而且这些程序可 能还具有一定的数据存储能力。服务器端主要安装数据库管理系统,当然也可能包含 一些业务逻辑实现。这种结构把软件系统的显示逻辑、运算逻辑和数据存储分别放在 了客户机和服务器两端,优点是有效地降低了网络通信量和服务器的运算量,而缺点 是客户端需要专门安装特别的软件,也为更新带来了不便,同时在地域范围和存储能 力上都存在一定的局限性。 而b s 结构是对c s 结构的一种改进。在这种结构下,服务器端实现了应用系统 的全部业务逻辑和数据存储,客户端则由浏览器替代了专门的程序来进行业务处理。 客户端的所有处理请求都以h 下r p 请求形式发送,而服务器端则将响应以h t m l 页面 的形式送回客户端,由客户端的浏览器负责显示h t m l 页面。b s 结构和c s 结构相 比,它的优势在于:数据安全性高、数据一致性好、数据实时性好、系统更新方便【2 】。 对于信息系统而言,系统的存在代表了信息的延续,而信息的延续则代表了企业 生命的延续,所以相对于这个系统的前期开发工作,后期的维护、升级往往占了更大 的比重。同时还有一种极端的情况便是,可能在前期丌发的时候,企业需求已经发生 改变,这科- 改变往往是客观的,所以软件系统必须能够适应这种改变。综合以上两点, 软件系统必须具有很好的仲缩性来适应助能变更和后期扩展。 然而r l 前b s 模式下些歹l :发w e b 应用系统的技术,如,从最初的c g i ,到后 求的p h p 、a s p ,较新的有a s p n e t 、j s p 等,往行把所有的处理逻辑全部写在了前 端的页面中1 3 l 。在这种过程化的丌发中,无论是显示逻辑或是业务逻辑全部杂糅在一 第章绪论 起,完全失去了企业级应用所注重的可维护性和复用性。以j s p 技术为例,从软件的 可维护性来讲,对于全部采用j s p 和s e r v l e t 的应用,因为分层不够清晰,业务逻辑的 实现没有单独分离出来,造成系统后期维护困难。再从软件复用角度考虑,企业往往 希望以最快的速度,开发出最稳定、最实用的软件,软件复用可以说是一个企业开发 的生命。因为系统没有任何架构可言,所以每次开发系统都需要重新编写代码。一方 面,重新丌发就代表需要投入更多的人力、物力和时问,这耗费了企业成本;另外重 新开发的代码具有更多的漏洞,这增加了系统出错的风险。对于小型的项目开发或是 不需要太多业务处理的网站开发中,这或许是一种更加便捷高效的方式,但是对于企 业级应用来说,无论是在前期的分工合作或是后期的扩展维护上都是极为不便的。 m v c 设计模式的应用解决了系统结构的问题。m v c 设计模式重新定义了b s 结 构应用的开发模式,规定b s 结构应用应该分成m o d e l ( 模型) 、v i e w ( 视图) 和 c o n t r o l l e r ( 控制器) 这三个相对独立而又能协同工作的部分1 4 1 ,这样便分离了数据访问 和数据表现,给系统提供了更好的解耦和应用更好的可扩展性。j 2 e e 平台是当前企 业级应用中的主流平台,它本身的特质使它非常容易实现m v c 模式,所以当前的企 业级应用往往把j 2 e e 平台和m v c 设计模式结合在一起,成为开发中的主流。然而 j 2 e e 也不是尽善尽美,比如s u n 公司通过使用e j b 容器来完成m v c 模式,然而e j b ( 至少3 0 以前) 模型配置部署起来非常复杂,会使开发人员把大量的时间投入在开 发程序架构上。这导致在早期w e b 应用开发中,开发难度很大,这也大大影响开发 效率。 由此,催生了轻量级开源框架技术的发展。这些开源框架大都是轻量级的,并且 结构清晰,部署方便,他们摒弃了e j b 繁琐的配置和部署过程,节约了开发时间,从 最大程度保证了系统的稳定性和可靠性。使用这些框架可以显著改善w e b 系统结构, 在简化开发流程的同时又提高了代码的重用率。 所以,如何使用框架技术来提供一个可复用、可维护性良好的丌发方案就成为了 本文的意义所在。 另一方面,随着网络的普及和发展,人们对于网络的要求也越来越高,随着w e b 2 0 热潮的到来,人们的关注点也越来越多。比如,在传统w e b 应用中,客户端与服务 器通讯主要采用同步方式。与基于c s 模式的软件系统相比,由于这种方式服务器端 响应的是整张页面,浪费了网络资源,所以造成了系统响应速度慢、交互能力差、操 作界面简单等不足。在软件使用越来越人性化的今天,这些不足逐渐成为w e b 应用 发展的障碍。 随着以a j a x 技术为代表的w e b 2 0 技术的兴起,传统w e b 应用发生了极大的改 善。a j a x 是种综合性的客户端技术,它在增强客户端表现能力的刚时,可以实现客 户端与服务器的异步数据通讯,把用户与服务器端的交互粒度由页面分解到数掘层 面,在提高了w e b 系统的性能的同时,大大改善了用户体验。那么让a j a x 技术与基 2 第一章绪论 于j 2 e e 平台的框架技术结合起来,就成为新一代的w e b 应用开发的方向,同时也是 本文的研究意义所在。 1 2 本文的研究内容 为了加强对公安部国有资产的管理,进一步提高国有资产的使用效益,故需开发 网络版的国有资产管理系统,方便对国有资产进行更加科学有效、规范的管理。 从第一个框架诞生到目前繁多框架的出现,每种框架都有各自的技术特点和适用 范围,各框架本身并不存在优劣之分,只是他们的侧重点不同而已,在实际应用中应 该根据具体的需要选择最适合的框架技术。针对企业级w e b 应用,可以在现有框架 中整合一些适合所开发系统特点的框架,发挥它们各自的优势,弥补各自的不足,从 而构建一个具有良好扩展性和一定通用性的w e b 应用开发平台。另外,针对传统w e b 应用中界面简单、响应速度慢等不足,可以将a j a x 技术融入到框架开发中,以提高 系统的交互性,改善用户使用体验。本课题针对以上问题,在参照以往w 曲应用开 发的基础上,并基于m v c 开发模式的思想,尝试了a j a x + s s h ( s t r u t s2 + h i b e m a t e + s p r i n g ) 开发方案的运用。 s t r u t s 2 是一个优秀的基于j 2 e e 平台的m v c 框架,它的核心是w e b w o r k 框架, 同时也继承了s t r u t s 的优点,实现了w e b 应用程序的显示逻辑和业务逻辑的分离,简 化了w e b 层的开发1 5 ) 。h i b e r n a t e 是一个功能强大、高性能的o r m ( 对象关系映射1 工 具,它简化了基于普通j a v a 对象( p o j o ) 模型及用于映射底层数据结构的持久化对象的 开发,并能够提供高级数据查询和检索服判州。s p n n g 用于创建和管理服务器端的各 个组件,它可以同s t r u t s 2 和h i b e r n a t e 这两者进行良好整合,并实现事物管理和d a o 模式1 7 j 。将这三种技术结合起来丌发j 2 e e 应用,或许在前期系统规划和丌发中要投 入更多的经历,然而这种规划有利于代码的复用,使系统具有更好的扩展性,也便于 后期的维护。这种结构化的开发策略正逐渐被众多程序员所接受,在大型项目的实际 开发中已得到广泛的应用。a j a x 结合众多已有的客户端技术,以x m l h t t p r e q u e s t 对 象技术为核心,弥补了传统开发中客户端与服务器端交互模式的不足,同时减少了网 络负担,改善了用户体验。本研究尝试对这些技术和框架进行组合应用,真萨体现了 w e b 2 0 概念中交互性与平台性的统一。 1 3 论文组织结构 第一章分析了当前资产管理系统的发展现状和w e b 应用的发展趋势,阐述了本 第一章绪论 文所采取的开发原则。 第二章介绍了本研究所使用到的相关技术,如在系统结构化方面使用到了 s t r u t s 2 、s p r i n g 、h i b e r n a t e 框架技术,在异步交互方面使用到了a j a x 技术。 第三章对本系统的需求进行了分析,从功能角色和系统模块方面进行了详细说 明。 第四章是整个系统的设计部分,对于系统整体、数据库结构及具体每层都进行了 设计说明。 第五章中描述了如何根据所提出的方案进行具体的实现,对其中的关键点做出了 分析。 最后对整篇文章进行了总结,并提出了下一步的改善计划。 4 第二章相关技术介绍 2 1m v c 思想的介绍 第二章相关技术介绍 从开发和使用的双重角度讲,软件,尤其是信息管理软件,并不是一次性系统, 它不能像硬件产品那样随时间的流逝而宣布过时,然后更换新一代的产品。因为基于 w e b 的应用软件往往是信息的延续,是企业命脉的延伸。所以这些软件不能彻底替换, 只能在其原有基础上进行扩展和延伸。如果支撑企业系统的软件不具备可扩展性,那 么当企业平台发生改变时,那么我们将无法面对这种改变。如果我们新开发的系统不 能与原有系统有机地结合在一起,那么老系统的信息将无法进行重新利用,这种损失 将无法用金钱来衡量。所以,在设计软件时候需要投入更多时间去考虑一种便于复用 和扩展的方式。m v c 的思想正是符合了企业开发所重视的两个因素:复用和可维护 性。m v c 思想将应用中各组件按功能进行分类,不同的组件使用不同的技术充当, 甚至推荐了严格的分层,不同组件被严格限制在其所在层内,各层之间以松耦合的方 式组织在一起,从而提供良好的封装。m v c 并不是j a v a 语言所特有的设计思想,也 并不是w e b 应用所特有的思想,它是所有面向对象程序设计语言都应该遵守的规范 【引。 2 1 1m v c 设计模式 m v c 设计模式将一个应用程序分为三个基本部分:模型( m o d e l ) 、视图( v i e w e r ) 和控制器( c o n t r o l l e r ) ,这三个部分有着他们各自的分工,同时又以最小的耦合协同工 作,从而提高了系统的可扩展性和可维护性。 在经典的m v c 模式中,事件由控制器处理,视图和模型之间往往有着一定的对 应关系。基本上每个模型都对应系列的视图列表,这种对应关系通常通过注册来完 成,也就是把多个视图注册到同一个模型,当模型发生改变时,模型向所有注册过的 视图发送通知。接下来,视图从对应的模型l f l 获得信息,然后完成视图矬示的更新, 而这切都是由控制器末控制p j 。可以看出,m v c 思想非常类似二r 设计模式中的观察 者校,不过和观察者模式的不同便是:在普通j a v aj l :发的观察者模式下,观察者和 被观察者可以是两个互相对等的对象,但对二j :m v c 思想而毒,被观察者往往只是单 纯的数掘体,即模型,而观察者则是单纯的视图页i 砸。 第二章相关技术介绍 浏览 圈2 - 2 遵循m v c 模式的j a v a w e b 运行流程 f i g2 2 t h ej a v a w e b w o r k i n g p r o c e s s i n m v c 2 2s t r u t s2 介绍 2 2 1s t r u t s2 简介 s t r u t s 是a p a c h e 基金会下的一个开源框架,它本质上就是一个m o d e l 2 模式的 w 曲应用框架。该框架主要采用了s e r v l e | 和j s p 技术来实现,它把j s p 、s e r v l e t 、 j a v a b e a n 、t a g l i b ( 自定义标签) 以及信息资源都整台在了一个统一的框架中为w 曲 应用丌发提供了一种具有高可配置性的m v c 开发模板【】”。对于输入验证、错误处理 与撒表,流控制这些功能,s t r o t s 也都提供了大量的可扩展的基础性的服务。 s t r u t s2 与s t r u t s1 的差别很大,它并不仅仅是s t r u t sl 的升级版本,而是以 w e b w o r k 优秀的设计思想为核心,吸收了s t n i t si 的部分优点建立的一个兼容 w e b w o r k 和s t r u t sl 的m v c 框架。可以说,s t r u t s 2 更缘是w e b w o r k 的升级版,不 过对于s l r a t s 原有的那些优点又统统保留了下来,所以习惯了适用s t r t t t s l 的开发人 员叉可以很快地掌握它的使用方法。 2 22s l r u t s2 的工作流程 s t r u t s2 框架对信息的处理流程如图2 - 3 所示 ( 1 ) 浏览器首先向服务器端发送请求,请求可以是某个视图资源、某个a c t i o n 或 第二章相差技术介绍 是某个处理逻辑。 ( 2 ) s 仉i b 2 的核心控制器f i l t e r d i s p a t c h e r 根据请求决定调用合适的a c t i o n ,请求 中包含了所需a c t i o n 的逻辑名称,而配置文件中定义了a c t i o a 所对应的具体 实现类。 ( 3 ) w e b w o r k 的拦截器链自动对请求应用通用功能,例如工作流功能、校验功能 或文件上传等功能。 ( 4 ) 控制器回调a c t i o n 中的处理方法,f i l t e r d i s p a t c h e r 根据配置文件s t r u t sx m l 找 到需要调用的a c t i o n ,执行对应的实现娄q 1 的e x e c u t e ( ) 方法。泼方法能够获 取用户请求参数,然后执行编写的业务处理方法。a c t i o n 会温用业务逻辑组 件来处理用户的请求。 ( 5 ) a c t i o n 的e x e c u t e 方法处理完成后返回一个逻辑视图名给控制器。 ( 6 ) 控制器根据逻辑视图名从配置文件中找到对应的具体物理视图资源,资源中 的信息将被输出到浏览器中,可以是h t m l 页面、图像,也可以是p d f 文档 等其他可视化技术。 ! - - l * 目n 箦方法 i 一 。+ 耐览器 m 圈面 匿2 - 3 请求- 响府的完接流程豳 f i g 2 - ,t h e f u l l m m s so f r e q u t t or e s p o n s e 图中方框内的区域包括f i l t e r d i s p a t c h e r 和x x x a c t i o n ,它们共同构成了s t r u t s2 的控制器,通常把f i l t e r d i s p a t c h e r 称为核心控制器,把x x x a c t i o n 称为业务控制器。 核心控制器负责请求、处理逻辑、响应结粜、视图资源之问的关联。业务控制器 x x x a c t i o n 通常并不与物理视图关联,仅仅负责近回处理结果,而馥处理结果与怎样 的视图关联t 依然山f i l t e r d i s p a t c h e r 柬决定。这样做的好处是提供的很好的解耦,如 第二章相关技术介绍 果有一天需要将某个视图名映射到不同视图资源,这就无需修改x x x a c t i o n 的代码, 而是只需修改配置文件即可。 2 2 3s t r u t s2 配置处理结果 处理完用户请求后,a c t i o n 会返回一个普通字符串,这个普通字符串就是一个逻 辑视图名,如“s u c c e s s ”、“e r r o r 等。在配置文件中由丌发人员定义了逻辑视图名 和物理视图之l 自j 的映射关系,系统一旦收到a c t i o n 返回的某个逻辑视图名,就会把对 应的物理视图呈现各浏览者。图2 4 显示了浏览者、控制器和视图资源之间的顺序图。 浏览者 发送请求 控制器 视图资源1视图资源2 图2 - 4 浏览者、控制器和视图资源之间的顺序图 f i g 2 - 4t h et i m es e q u e n c eo fv i e w e r , c o n t r o l l e ra n dv i e ws o u i c e 如图所示,a c t i o n 处理完用户请求后,并不是直接把请求转发给任何具体的视图 资源,更不是把响应直接发送给用户,而是返回一个逻辑视图名,这个逻辑视图名只 是一个普通的字符串,s t r u t s 2 框架收到这个逻辑视图名后,把请求转发到对应的视图 资源,视图资源将处理结果呈现给用户。此外,s t r u t s2 还支持多种结果映射,实际的 视图资源不仅可以是j s p 视图资源,还可以是其他形式的视图,甚至a c t i o n 返回的字 符串不一定是视图资源,而是将请求转发给下一个a c t i o n 处理,形成a c t i o n 链式处 弹f i7 1 。 l o 口 第二章相关技术介绍 2 2 4s t r u t s2 的拦截机制 对于任何m v c 框架来说,它们都会完成一些通用的控制逻辑,例如解析请求参 数、类型转换、输入校验、防止表单多次提交等等,s t r u t s l 框架把这些动作都写死在 了核心控制器里【l 引,这样做灵活性和可扩展性都很差。s t r u t s 2 改变了这种做法,它把 大部分核心控制器需要完成的工作按功能分开定义,每个拦截器完成一个功能,这些 拦截器可以自由选择,灵活组合,开发者根据需要可以在s t r u t s x m l 文件中指定所需 的拦截器即可,可以既s t r u t s 2 的拦截器是一种可插拔式的设计。s t r u t s2 框架有很大 一部分功能都是通过拦截器来完成的,当f i l t e r d i s p a t c h e r 拦截到用户请求后,大量拦 截器会对用户请求进行处理,这些拦截器执行完相关的操作后,才会调用用户开发的 a c t i o n 实例的方法来处理请求。拦截器与a c t i o n 之间的关系如图2 5 所示: 图2 5s t r u t s 2 的体系概图 f i g 。2 - 5t h eg e n e r a lg r a p h i co fs t r u t s2 第二章相关技术介绍 2 3s p r i n g 介绍 2 3 1s p r i n g 简介 传统的j a v ae e 开发框架繁琐、臃肿,不易于部署,对于程序员来说,它是效率 低下的,所以人们不断寻求新的解决方案,而s p r i n g 正是为了简化企业级应用开发而 诞生的一个开源框架。通过使用s p r i n g ,开发人员可以用简单的j a v a b e a n 来实现那些 以前只有e j b 才能实现的功能。并且,不只是服务端的开发可以使用s p r i n g ,任何的 j a v a 应用开发都能从s p r i n g 的简单、可测试和松耦合特征中受益。 s p r i n g 为企业应用的开发提供了一个轻量级的解决。该解决方案包括:基于依 赖注入的核心机制,基于a o p 的声明式事务管理,与多种持久层技术的整合,以及 优秀的w e bm v c 框架等【1 9 1 。在w e b 应用的开发中,s p r i n g 可以同时贯穿表现层、业 务层和持久层。 s p r i n g 提供了很多功能,可以将他们归结为几个基本部件,它有着如下几个特点: ( 1 ) 轻量级:从大小和应用开支上来说s p r i n g 都可以算是轻量级的。整个s p r i n g 框架可以打成一个2 5 m 多一点的j a r 包,并且s p r i n g 的处理开支也非常小。 更重要的是,s p r i n g 是非侵入式的,基于s p r i n g 开发的应用中一般不依赖于 s p r i n g 的类。 ( 2 ) 依赖注入:s p r i n g 提供了一种松耦合的技术,称为依赖注入( d i ) 。只用依 赖注入,对象是被动接收依赖类而不是自己主动去找。也就是说,对象不是 从容器中去查找它的依赖类,而是容器在实例化对象的时候主动将它的依赖 类注入给它。 ( 3 ) 面向切面( a o p ) :s 埘n g 对面向切面编程提供了强大的支持,通过将业务 逻辑从应用服务中分离出来,实现了内聚开发。应用对象需实现业务逻辑, 而不用负责系统其他问题( 如同志和事务支持) 。 ( 4 ) 容器:s p r i n g 是一个容器,因为它包含并且管理应用对象的生命周期和配置。 开发人员可以通过配置来设定b e a n 的类型是单一实例,还是每次请求产生一 个实例,并且设定他们之间的关联关系。 ( 5 ) 框架:s p r i n g 实现了使用简单的组件配置组合成一个复杂的应用。在s p r i n g 中,应用中的对象是通过x m l 文件配置组合起来的。并且s p r i n g 提供了很 多基础功能,这使丌发人员能够专注于丌发应用逻辑。 第二章相关技术介绍 2 3 2s p r i n g 核心机制 在应用程序的开发中,稍微复杂一些的业务逻辑处理至少都需要两个以上相互合 作的类来完成。一般的开发中,每个对象都要自己负责得到他的依赖对象,通常情况 下是通过n e w 关键字来生成一个它所需要的实例,这样会导致代码耦合度高而且难以 测试。一般规模化的企业中为了解决这种问题,往往通过使用工厂模式来管理各个实 例的创建和使用,然而依赖注入以一种更加优雅的方式解决了对象间的依赖问题【2 u 。 使用依赖注入,对象的依赖都是在对象创建时由负责协调应用中各个对象的外部实体 提供的。这就是依赖被注入到对象中。另外,s p r i n g 还鼓励了对接口编程而不是对类 编程的好习惯,这和s p r i n g 中松耦合的思想是一致的。 s p r i n g 的核心机制便是依赖注入,它和平时常听到的控制反转是同一个意思,只 不过是s p r i n g 的作者为了用户便于理解而起的两个不同的名字。在依赖注入的模式 下,创建被调用者的工作不再由调用者来完成,而是由s p r i n g 容器来完成,然后把对 象实例注入给调用者【2 。所以,通常调用者只需声明它所需使用方法的接口即可,然 后由s p r i n g 去控制究竟该创建那个类的实例去满足调用者的需求。另外,使用依赖注 入,不仅可以为b e a n 注入普通的属性值,还可以注入其他b e a n 的引用。通过这种依 赖注入,j a v ae e 应用中的各种组件不需要以硬编码的方式耦合在一起,甚至无需工 厂模式,对象之间的依赖关系完全由s p r i n g 进行控制。可见,依赖注入是一种非常优 秀的解耦方式。依赖注入让s p r i n g 的b e a n 以配置文件组织在一起,而不是以硬编码 耦合的方式耦合在一起。这种机制提高了系统的重用性和可移植性。 2 4h i b e r n a t e 介绍 2 4 1o r m 简介 目前流行的编程语言,如j a v a 、c 捍等,都是面向对象的编程语言,而目前主流的 数据库产品,例如o r a c l e 、d b 2 等,却是关系型数据库。编程语言和底层数据库结构 之间的不协调,给开发工作带来了一定的不便性,所以催生了o r m 框架的诞生。o r m 框架可以说是面向对象编程语言和关系型数据库之间的桥梁。 o r m 的全称是o b j e c t r e l a t i o nm a p p i n g ,即对缘关系映射。从字面意思不难看出, 这类框架的基本特征是:完成面向对象的编程语言到关系数据库之问的映射【z 2 1 。使用 j 2 e e 平台丌发应用程序的时候,从项目丌始规划起采用的便是面向对象分析、面向 对象设计,之后进行面向对象编程,但到了需要访问底层数挽:库的时候,又必须重返 关系数据库的访问方式,这是一种糟糕的方式。于是我们需要一种工具,它可以把关 第二章相关技术介绍 系型数据库包装成面向对象的模型,这个工具就是o r m 框架。o r m 框架中往往封装 了大量我们所需的访问数据库的方法,当我们采用o r m 框架之后,应用程序不再直 接访问底层数据库,而是以面型对象的方式来操纵持久化对象,而o r m 框架的功能 便是将程序中这些面向对象的操作转化成底层数据库中的s q l 操作。 2 4 2h i b e m a t e 简介 h i b e r n a t e 是目前最流行的开源o r m 框架,它是一个面向j a v a 环境的对象关系 数据库映射工具。它对底层j d b c 进行了轻量级的封装,用以完成映射工作。那些基 于j a v a 的中间件应用,大多是采用面向对象的业务模型的商业逻辑,对于他们来说 h i b e m a t e 是最有用的。h i b e m a t e 在履行了对象关系映射的职责的同时,还能消除那 些针对特定数据库厂商的s q l 代码,对于目前市面上的绝大多数数据库产品,都能 完成把结果集从表格的形式转换成对象的形式。并且,完成o r m 中j a v a 类到数据库 表之间映射的功能外,h i b e r n a t e 还提供了数查询和获取数据的方法。 h i b e r n a t e 通过映射文件的方式映射j a v a 对象和数据库表之间的关系,映射中包 括了数据库结构中的各种情况,所以用户甚至无需先对数据库结构进行设计,而是直 接从面向对象的设计方式着手。配置好映射文件后,可以把数据库的生成方式设置为 c r e a t e ,这样系统会直接根据j a v a 类在数据库中创建数据库表,系统初期调试时,这 是一种非常方便的开发方式。 2 4 3h i b e r n a t e 的体系结构 h i b e r n a t e 的持久化解决方案将用户从j d b c 的访问中解脱出来,用户无需关注底 层的j d b c 操作,而是以面向对象的方式进行持久层操作。底层数据连接的获得、数 据访问的实现、事务控制都无需用户关心。这是一种一站式的体系结构方案,将应用 层从底层的j d b c j t aa p i 中抽象出来。通过配置文件管理底层的j d b c 连接,让 h i b e r n a t e 解决持久化访问的实现。这种“全面解决”方案的体系架构如图2 - 6 所示。 下面对这些组成接口进行简单的介绍:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保护鼻子健康教案反思
- 角形的边说课稿
- 教师职业病健康知识讲座
- 展览合同终止合同协议范例
- 市政工程保温板施工合同
- 消费者权益争议解决协议
- 房屋建筑施工合同审计
- 办公楼厕所翻新合同样本
- 家电企业会计人员聘用协议
- 酒店窗户安装施工协议
- 高层房建勘察报告-实际工程项目
- 外研版小学英语(一年级起点)二年级上册Module-7-Unit-2课件
- 教师带实习生总结8篇
- 工程项目复盘模板(PPT)
- 《我国企业会计信息质量的现状、成因及治理对策(论文)7200字》
- 二十四节气立春课件
- 职工转移申请表
- 网络安全检查表模板
- 贵州省火力发电企业名录2017年125家
- 二年级上册科学二单元《材料》教材解读
- 10-源代码编译指南
评论
0/150
提交评论