(计算机系统结构专业论文)基于j2ee多层架构技术的web应用与实现.pdf_第1页
(计算机系统结构专业论文)基于j2ee多层架构技术的web应用与实现.pdf_第2页
(计算机系统结构专业论文)基于j2ee多层架构技术的web应用与实现.pdf_第3页
(计算机系统结构专业论文)基于j2ee多层架构技术的web应用与实现.pdf_第4页
(计算机系统结构专业论文)基于j2ee多层架构技术的web应用与实现.pdf_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 目前很多应用系统是建立在w e b 基础上,基于b s 结构的w e b 2 0 应用程序也 成为i n t e r n e t 上使用最为广泛的应用开发。而j 2 e e 平台的成熟,为w e b 应用程 序更进一步的发展提供了更广阔的空间。 当前基于j 2 e e 平台的w e b 应用在逻辑上一般被分为四层:域模型层、表示层、 业务层、数据层。这种多层的体系结构向开发者提供了一种基于组件的设计和开 发w e b 应用的模块化方法。应用系统各层的实现技术多种多样,每种技术都有其 优缺点和最适用的范围,怎样选择各层的技术以及如何结合这些技术来实现一个 应用系统是一个值得进一步考虑的问题。本文主要针对表示层、业务层和持久层 的实现提出了基于w e b w o r k + s p r i n g + h i b e r n a t e 的解决方案。w e b w o r k 是一个致力 于组件化和代码重用的拉出式m v c 模式实现框架,以其灵活、强大的功能为w e b 应用的构建减轻了负担。s p r i n g 是一种轻量级的容器,区别于e j b 的强侵入式, s p r i n g 的依赖注入动态的使系统各组件间达到松散耦合并且能和各种框架很好的 兼容。h i b e r n a t e 是一个开源的持久层框架技术,全面减轻了维护数据的复杂度, 使系统具有良好的性能和移植性。 本文以作者参与的四j l i 省乐山大佛电子商务平台开发项目为背景,在对系统 进行全面需求分析的基础上,分别对w e b 层、业务逻辑层、数据持久层进行了详 细设计。针对项目特点,在对比了各种框架技术的优势后,整合w e b w o r k 、s p r i n g 、 h i b e r n a t e 三种框架技术,提出了一个具有通用模式的j 2 e e 架构:w e b w o r k 实现 m v c 模式完成w e b 表示层功能,其业务逻辑交由s p r i n g 来管理;s p r i n g 负责管理 表现层控制器与数据访问对象间关系,完成业务逻辑层功能;h i b e r n a t e 负责数据 的持久化工作。实现过程中融合了大量兼容技术如a j a x 、a c e g i 、f r e e m a r k e r ,并 设计开发了一系列可重用模板,单元测试和集成测试表明,系统满足设计需求。 综上所述,文章在对各种主流框架技术深入分析的基础上,提出了集成 w e b w o r k 、s p r i n g 、h i b e r n a t e 三种框架技术的j 2 e e 架构,不但能够有效地解决传 统w e b 应用开发中存在的问题,而且采用分层及模块化设计使系统具有很高的可 维护性、扩展性、移植性和组件的复用性。 关键词j 2 e e ,框架,w e b w o r k ,s p r i n g ,h i b e r n a t e a b s t r a c t n o wal o to fa p p l i c a t i o ns y s t e m sa r cb u i l d i n go nt h ew e b f o u n d a t i o n b ,s s t r u c t u r en o wb e c o m e st h em a i n s t r e a m d e v e l o p m e n ts y s t e m f o r e n t e r p r i s e a p p l i c a t i o n 1 1 bm a t u r i t yo fj 2 e ep l a t f o r m o f f e rt h ew i d e rs p a c ef o rw e ba p p l i c a t i o n d e v e l o p m e n t a tp r e s e n ta c c o r d i n gt ot h ew e ba p p l i c a t i o no fj 2 e et e r r a c ea tl o g i c a li sb e e n d i v i d e di n t o4fg e n e r a l l y :d o m a i nm o d e ll a y e r , p r e s e n t a t i o nl a y e r , b u s i n e s sl a y e ra n d d a t u b a s el a y e r t h i sk i n do fm u l t i - l a y e rs y s t e ms t r u c t u r ep r o v i d e d1k i n da c c o r d i n gt 0 t h em o d u l et o w a r dt h ed e v e l o p e ro ft h em o l dp i e c eo fd e s i g na n dd e v e l o p m e n tw e b a p p l i c a t i o nt o mam e t h o d a p p l i e dc a r r yo u to f e a c hl a y e ro fs y s t e mt e c h n i q u ei sv a r i e d a n dg r o wt e c h n i q u e st oa l lh a v ei tt h em e r i ta n ds h o r t c o m i n ge a c ht i m ew i t ht h em o s t s u i t a b l eu s eo fs c o p e ,h o wc h o o s ee a c ht e c h n i q u ea n dh o wc o m b i n et h e s et e c h n i q u e st o c a r r yo u ta na p p l i e ds y s t e mi saw o r t h yo fc o n s i d e rf u r t h e ro fp r o b l e m t h i st e x tm a i n l y a i m sa tt om e a nal a y e r , b u s i n e s sl a y e rw i t hh e l do u tf o rl o n gt i m et h er e a l i z a t i o no f l a y e rt op u tf o r w a r da c c o r d i n gt ot h ew e b w o r k + s p r i n g + h i b e r n a t es o l u t i o n w e b w o r k i sap u l l - o u tf r a m e w o r ko fi m p l e m e n t i n gm v cp a t t e r na n ds t r i v e sf o rr e u s i n gm o d u l e a n dc o d e ,i tr e l i e v e sb u r d e nf o rc o n s t r u c t i n gw e ba p p l i c a t i o nb yi t sf l e x i b l ea n d p o w e r f u lf u n c t i o n d i f f e r e n t i a t i n gs t r o n gi n v a s i o no fe i b ,s p r i n gw h i c hi sal i g h t w e i g h t c 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 ec o m p o n e n tl o o s e c o u p l i n gd y n a m i c a l l ya n dc o m p a t i b l ew i t ho t h e rf r a m e w o r k h i b e r n a t ei s a no p e n s o u r c ep e r s i s t e n c ef r a m e w o r k , w h i c he n t i r e l yr e d u c e st h ec o m p l e x i t yo fm a i n t a i n i n g d a t aa n dm a k es y s t e mh a v eh i g h e rp e r f o r m a n c ea n dp o r t a b l e t h i sp a p e rt a k e st h ep r o j e c to fs i c h a np r o v i n c el e s h a ng i a n tb u d d h ae b sa s e x a m p l e t od e t a i l e dd e s i g nf o re a c hl a y e rs u c h 勰w 曲l a y e r , b u s i n e 豁l o g i cl a y e ra n d d a t a p e r s i s t e n c el a y e r b a s e do n r e q u i r e m e n t sa n a l y s i sc o m p l e t e l y a sf o r t h e c h a r a c t e r i s t i co fp r o j e c t , a f t e rc o m p a r e da d v a n t a g e so fa l ls o r t so ff r a m e w o r k t e c h n o l o g i e s ,t h e a u t h o r i n t e g r a t e dw i t hw e b w o r k , s p r i n ga n dh i b e r n a t ea n dp u t f o r w a r dag e n e r a lm o d e lo fj 2 e ea r c h i t e c t u r e w h a ti st h a tw 曲w b f kw h i c h i m p l e m e n t e dm v cp a t t e r np l a yt h er o l eo fw e bp r e s e n t a t i o nl a y e ra n dh a n do v e ri t s 、 b u s i n e s sl o g i ct os p r i n g , m a n a g eo b j e c t s r e l a t i o no fb e t w e e nc o n t r o l l e ra n dd a t aa c c c s s o b j e c tt h r o u g hs p r i n ga n dm a k ed a t ap e r s i s t e n c eb yh i b e r n a t e i nt h ep r o c e s so f c a r r y i n go u t , t h ea r c h i t e c t u r eu t i l i z e sm a n yc o m p a t i b l et e c h n o l o g i e ss u c ha sa j a x ,a c c g i a n df r e e m a r k e r , a n dd e v e l o pas e r i e so fr e u s a b l et e m p l a r e s a f t e ru n i tt e s ta n di n t e g r a l t e s t , t h es y s t e mi sb a s i c a l l ys a t i s f i e da l lr e q u i r e m e n t s i nc o n c l u s i o n , t h i st h e s i sm a d ed i dd e e pa n a l y s i so fm a n yp o p u l a rf r a m e w o r k sa n d o f f e raj 2 e ea r c h i t e c t u r eo fi n t e g r a t i n gw e b w o r k , s p r i n ga n dh i h e m a t e , w h i c hn o to n l y r e s o l v et r a d i t i o n a li s s u e si nw e bd e s i g nb u ta l s oe n h a n c et h es y s t e m sm a i n t a i n a b i l i t y , e x p a n s i b i l i t y , c o m p a t i b i l i t y a n dr e u s a b i l i t y t h r o u g ha d o p t i n g d e l a m i n a t i o na n d m o d u l a r i z a t i o n k e y w o r d :j 2 e e , f r a m e w o r k , w e b w o r k , s p r i n g , h i b e r n a t e 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 关于论文使用授权的说明 够月z 烟 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:导师签名: 兰墨:! 三 日期:矽d 7 年华月z 弓f 日 第一章绪论 1 1 课题研究背景及意义 第一章绪论 i n t e m e t 的发展惠及于社会生活的各个领域,网络安全技术的快速发展和成熟, 商业领域的销售、交易、网络等各个领域都正在发生着空前的革命性的变化,越 来越多的企业和商家都想借助于i n t e r n e t 的无国界、无时间、无地域限制的便利环 境来经营拓展商务。电子商务这一新型商务模式已得到世界各国的普遍关注,它 不仅仅是i n t e r n e t 在商务领域的简单应用,更是一种新型的商务模式,它的推广彻 底改变了传统的旧的商务模式,引发一场新经济革命。所谓电子商务 ( e l e c t r o n i cc o m m e r c e ) 是利用计算机技术、网络技术和远程通信技术,实现整个商 务过程中的电子化、数字化和网络化。它是9 0 年代初在欧美兴起的一种全新商业 交易模式,从售前服务到售后服务的相关各个环节全部或部分实现电子化、网络 化、自动化及高效化。从客户角度说,电子商务给人们的生活带来了极大的便利, 人们可以足不出户的浏览所有商品,选择、购买、支付完全在网上完成。 电子商务在发达国家的发展空前繁荣,通过互联网进行交易已成为商业发展 的必然趋势。在我国,电子商务始于1 9 9 7 年。中国商品订货系统( c g o s ) 、中国 商品交易中心( c c e c ) 、虚拟“广交会”等大型电子商务项目在1 9 9 7 年相继推出, 拉开了中国电子商务的序幕。在可以想象的未来,我国的电子商务的前景和市场 需求相当广阔。基于电子商务的重大意义,其应用开发也就显得尤为重要。因此, 如何进行电子商务的应用开发,如何方便、快捷地构造出企业级电子商务应用系 统己成为一个目前急需解决的课题。 要满足包括电子商务系统在内的w e b 应用系统的要求,现有的技术参差不齐。 w e b 技术从最初的发布静态信息,到如今w e b 2 0 可以实现动态的交互功能,的确 走了一段很长的路。在专业技术人员的共同努力下,w e b 应用开发先后出现了c g i 、 p h p 及j s p 技术等,这些技术的产生大大减轻了w e b 编程的难度。但是它们有一 个共同的弱点,显示结构和业务逻辑混杂。这就意味着,业务模型的独立性和模 型的重用很难得到体现,在各开发团队之间相互依赖,很难独立、并行开发项目, 经常是每修改一处,就要影响到其他团队的正常工作,牵一发而动全身,大大限 制了开发人员的灵活性和开发进度,并延长了开发周期。此外代码的可读性、可 电子科技大学硕士学位论文 维护性和可扩展性都非常差,不利于后续的开发和维护工作,很难满足用户的变 化性需求。 综上所述,在现有的w e b 开发技术中,普遍存在着程序可重用程度低、维护 工作繁琐、应变能力较弱等不足。而且,目前w e b 应用的需求越来越复杂,开发 周期越来越紧迫,同时对系统的稳定性、扩展性和可维护性要求越来越高,因此 如何将混杂的模式进行合理的分层以及各层的框架搭建和技术选择就变得尤为重 要。 1 2 国内外文献综述 w e b 应用的广泛性推动了软件技术的发展,同样软件技术发展促进w e b 应用 更加广泛。今天的软件,规模不断扩大,复杂度日渐升级、开发人员面临的问题 越来越多、解决方案也百花齐放。即使是利用先进的j 2 e e 软件平台,在多层w e b 体系结构的设计中,同样存在着程序可重用程度低、维护性、兼容性和扩展性差 等不足。w e b 应用软件需要面对异构的网络环境、多样化的用户需求、灵活的业 务模式、复杂的业务流程、众多的组织机构及层次、角色分工等问题。因此,如 何设计应用软件使纷杂的应用需求和多样化的客观环境能够彼此尽量少的受到对 方的干扰和牵制,以及我们曾经的成功案例能否再次使用? 分层结构和组件复用 给众多开发人员提供了选择。分层结构让系统的功能更加明确,减少了各层次之 间的关联和依赖,让开发人员可以同步工作而不会受到其他人的影响。组件复用 是在分层的基础上,由于层间的耦合性低,独立性强,在成熟组件的基础上开发 极大的提高了软件的开发效率、缩短了开发周期,使软件产品的稳定性、兼容性、 扩展性都得到了提高。因此,人们越来越意识到软件重用技术的重要性,设计模 式和框架技术应运而生。 设计模式和框架技术在整个系统开发中发挥了重要的作用,但从更广泛的角 度说,它们只是在更小的颗粒度上发挥功用。如何组织各个层次、如何合理选择 使用模式和框架技术又将开发人员的关注点提高到整个系统层面上来。架构技术 为这一问题提供了解决方案。架构是软件系统从整体到部分的最高层次的划分, 一般由多个不同领域的框架组成。一个成功的软件需要有一个成功的架构,它将 各个框架技术有机的组织起来,相互关联但又不失其独立性。软件架构的建立是 一个复杂而又持续改进的过程,开发人员不可能对每个项目做不同的架构,而总 是尽量重用以前的架构,或开发出尽量通用的架构方案。 2 第一章绪论 如何在众多的框架中选择建立适合企业应用的架构,并且怎样让各个应用层 无缝连接? 如何整合框架以便让各个层以一种松散耦合的方式彼此作用而不用管 底层的技术细节? 这给软件人员提出了挑战。 1 3 课题的来源及主要研究内容 课题来源:四川省乐山大佛电子商务平台项目 本论文主要研究内容 1 ) 本文首先对j 2 e e 平台框架和m v c 模式进行了研究。对j 2 e e 体系结构、核心 技术、j 2 e e 各组件的作用等方面进行了深入的分析和阐述。从m v c 模式的发 展史我们可以更清楚的看到,基于m v c 模式极大的解决了目前w e b 应用开发 中存在的问题。在深入分析m v c 模式的基础上,我们对目前较为流行的几种 m v c 实现框架( s t r u t s 、w 曲w b r k 、s p r i n g m v c 、t a p e s 仃v j s f ) 进行了分析 对比,确定以w e b w o r k 作为优选方案。最后介绍了m v c 模式与j 2 e e 框架的 关系。 劲详细介绍了m v c 设计模式的实现w 曲w o r k 框架,分析了它的体系结构、 工作原理、核心组件、配置文件以及对m v c 设计模式的实现。接着介绍了 s p r i n gf r a m e w o r k 这一多层j 2 e e 应用程序框架,分析了它的体系结构和工作 机理,并着重分析了s p r i n g 的反转控制( i o c ) ,依赖注入( d i ) 机制和a o p ( 面向方面编程) 技术,并在最后同e j b 技术进行了比较。最后详细介绍了 o r m 对象关系映射模型,并对i - i i b e m a t e 这一对象关系映射框架进行了介绍, 分析了h i b e r n a t e 的体系结构、实现机制。最后提出了三种框架技术整合的优 越性。 3 1 在架构设计进行深入分析的基础上,提出了集成w e b w o r k ,s p r i n g 和h i b e r n a t e 的架构设计方案,详细分析了三种框架之间的关联关系、交互关系和权责分工。 重点讨论三种框架技术的整合,对实现技术做了一定的归纳分析,为w e b 应 用实现提供选择性参考。 4 ) 基于上述分析,以四川省乐山大佛电子商务平台项目为例,通过对该项目详细 的需求分析,提炼出了系统的结构模型以及各模型之间的关系,确定整个系统 采用上述w s h 体系结构进行分层及模块化设计。分别对对象关系、系统流程、 w e b 表示层、业务逻辑层、数据持久层等进行了详细设计。 5 ) 应用w s h 架构对乐山大佛电子商务平台详细设计后,对w s h 集成架构的各 3 电子科技大学硕士学位论文 层的典型功能进行了实现,提炼出可重用组件,对实现架构的安全性进行了探 讨,并对w s h 架构的兼容技术予以介绍。最后对w s h 集成架构的特点进行 了分析总结。 6 1 论文总结和下一步的研究方向。本论文在分析了现有框架技术的基础上,对流 行框架( w e b w o r k 、s p r i n g 、h i b e r n a t e ) 进行整合,使其形成一个具有一定集 成度和通用性的软件开发架构。这样将减少开发过程中各个领域间的整合所需 工作量,降低开发的风险。就架构的设计思想在多层w e b 应用中的作用作较 深入的探讨,为实现高效、灵活的多层w e b 体系结构的应用提供一种新的思 路及方案。 4 第二章j 2 e e 框架和m v c 模式 2 1j 2 e e 框架 2 1 1j 2 e e 简介 第二章j 2 e e 框架和m v c 模式 j 2 e e ( j a v a2e n t e r p r i s ee d i t i o n ) 是建立在j a v a2 平台上的企业级应用的解决 方案。目前,j a v a2 平台有3 个版本,它们是适用于小型设备和智能卡的j a v a2 平 台m i c r o 版( j 2 m e ) 、适用于桌面系统的j a v a2 平台标准版( j 2 s e ) 、适用于创 建服务器应用程序和服务的j a v a 2 平台企业版( j 2 e e ) 。j 2 e e 技术的基础就是核 心j a v a 2 平台的标准版,j 2 e e 不仅巩固了标准版中的许多优点,例如“编写一次、 随处运行”的特性、方便存取数据库的j d b c a p i 、c o r b a 技术以及能够在i n t e m e t 应用中保护数据的安全模式等等,同时还提供了对f 3 b ,j a v as e r v l e t sa _ p l 、j s p 以及x m l 技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短 投放市场时间的体系结构。事实上,j 2 e e 已经成为企业级开发的工业标准和首选 平台。【1 l j 2 e e 并非一个产品,而是一系列的标准。符合这个标准的产品叫“实现”; 其中s u n 公司的j 2 e e 开发包中就有一个这样的“实现”,市场上也可以看到很 多实现了j 2 e e 的产品,如b e aw e b l o g i c ,i b mw e b s p h e r e 以及开源的j b o s s 等 等。 2 1 2j 2 e e 体系结构 j 2 e e 体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用 性、高可靠性以及可扩展性的应用需求通过提供统一开发平台,j 2 e e 降低了开 发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支 持e n t e r p r i s ej a v a b e a n s ,有良好的向导支持打包和部署应用,添加目录支持,增强 了安全机制,提高了性能,是传统的互联网应用程序模型无法比拟的。 j 2 e e 是多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件 根据他们所在的层分布在不同的机器上( 也可以放在同一台机器上) 。解决两层 模式( c l i e n t s e r v e r ) 的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿, 5 电子科技大学硕士学位论文 在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不 理想,而且经常基于某种专有的协议( 通常是某种数据库协议) 。它使得重用业 务逻辑和界面逻辑非常困难。现在j 2 e e 的多层企业级应用模型将两层化模型中的 不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的 层,【2 】图2 1 是j 2 e e 典型的四层结构 客户层c l i e n tw e b 表示层业务逻辑层企业信息系统 e i s ,、,- x f j 8 容器 谢览器、w e b 容器 e j b h m j s p a 数据库 儿a j m s 犷1 _v h 皿咀, s e r v l e t 犷 j t a x m l) 舰 j 掣【! ! ! j a v a m a i l心 j i ) b c ,砬甬客卢孺、 州 j n d i ( a p p l i c a t i o n j a c c c l i e n t ) s e r v i a 应用客户端 儿a j 2 e e 嗽 e a 数据库 容器 犷 p l a t f o r m j 2 e e ( a p p l i c a t i o n p l a t f o r m c l i e n t c o n t a i n 出 客户帆j 2 e e 服备罂e i s 服备器 图2 - 1j 2 e e 架构应用程序 客户层组件:j 2 e e 应用程序可以是基于w e b 方式,也可以是基于传统桌面应用 方式。 w e b 表示层组件:w e b 表示层位于j 2 e e 服务器中,主要由w e b 容器进行管理, 可以是j s p 页面或s c r v l e t s 按照j 2 e e 规范,静态的h t m l 页面和a p p l e t s 不 算是w e b 层组件。 业务层组件:业务层逻辑由f _ j b 容器来管理,主要由运行在业务层上的 e n t e r p r i s eb e a n 进行处理并发送到e i s 层进行储存,这个过程也可以逆向进 行。而往往经常由图3 所示的几个服务( 如j d b c 、j n d i 等) 协作完成。 企业信息系统层:企业信息系统层处理企业信息系统软件包括企业基础建设系 统例如企业资源计划( e r p ) ,大型机事务处理,数据库系统,和其它的遗留信 息系统 6 第二章j 2 e e 框架和g v c 模式 2 2w c 模式介绍 2 2 1 什么是w c 模式 m v c ( m o d e l v i e w - c o n t r o l l e r ) 设计模式是从用s m a l i t a l k 编程环境中创建用户 接口的过程中发展来的,是一种流行的面向对象的设计模式,m v c 设计模式的核 心思想是通c o n t r o l l e r 将数据的表示v i e w 和数据本身及其处理的m o d e l 分开,这样相 同的数据可以根据不同的用户有不同的展现方式,降低了程序的耦合度,同时也 可以提高系统的开发效率。【3 】【4 】 使用m v c 应用程序被分成三个核心部件:模型、视图、控制器下面详细说 明各部分的作用: 视图i e w ) :代表用户交互界面,对于w e b 应用来说,h t m l 依旧在视图中扮演 着重要的角色,但一些新的技术已层出不穷,它们包括f l a s h 和象x h t m l , x m l x s l ,w m l 等一些标识语言和w c bs e r v i c e s 。随着应用的复杂性和规模性, 界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,m v c 设计模式 对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在 视图上的业务流程的处理。业务流程的处理交予模型( m o d e l ) 处理。 模型( m o d e l ) :就是业务流程状态的处理以及业务规则的制定和企业数据。业 务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回 最终的处理结果。业务模型的设计可以说是m v c 最主要的核心。目前流行的e j b 模型就是一个典型的应用例子。 控制( c o n t r o l l e r ) :可以理解为从用户接收请求。将模型与视图匹配在一起,共 同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个 分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。 控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后,并 不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要 求的视图返回给用户。 总结m v c 的处理过程: 1 首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理。 2 然后模型用业务逻辑来处理用户的请求并返回数据。 3 最后控制器用相应的视图格式化模型( 如j s p ,f r e e m a r k e r 等) 返回的数据, 并通过表示层呈现给用户。 7 电子科技大学硕士学位论文 2 2 2 为什么要用i v i 、0 模式 在m v c 模式之前,w c b 应用程序都是用像a s p ,p h p ,或者c h v i l 这样的 过程化语言来创建的。它们将像数据库查询语句这样的数据层代码和h t m l 代码 混编在一起。从开发速度上来说,有其便利的方面,但将数据与表示混杂在一起, 很难体现出业务模型的独立性和模型的重用。m v c 从根本上强制性的将它们分开。 尽管构造m v c 应用程序需要一些额外的工作,但是它给我们带来的好处是无庸质 疑的。 首先,最重要的一点是多个视图能共享一个模型,如果需要用越来越多的方 式来访问你的应用程序,其中一个解决之道是使用m v c ,无论你的用户想要f l a s h 界面或是w a p 界面,用一个模型就能处理它们,所以你可以最大化的重用你的 代码。 由于模型返回的数据没有进行格式化,所以同样的构件能被不同界面使用。 如,很多数据可能用h t m l 来表示,但是它们也有可能要用f l a s h 和w a p 来表示, 同时模型也有状态管理和数据持久性处理的功能。 因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应 用程序的数据层和业务规则。如果你想把你的数据库从m y s q l 移植到o r a c l e ,或 者改变你的基于r d b m s 数据源到l d a p ,只需改变你的模型即可。由于运用m v c 的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据 这种设计思想你能构造良好的松耦合的构件。 2 2 3 几种w c 实现框架的比较 m v c 模式从概念上定义了基于w 曲应用的框架技术,同时支持m v c 模式 的框架技术也是种类繁多,目前比较主流的有s t r u t s ,w e b w o r k ,s p r i n g m v c ,j s f 等。面对琳琅满目的框架,究竟该使用那种呢? 那种才是最好的呢? 笔者认为, 对于各种框架技术,不存在绝对的好与不好,而是各有所长,针对不同的应用需 求选择合适的框架技术才是上策。 5 1 下面针对几个主流框架技术进行简单的比较: 1 s t r u t s 优点:业界“标准”( 很多成功案例) ,学习文档、书籍资源丰富,h t m l 标签非常优秀,具有广泛的群众基础。 缺点:a c t i o n f o r m s 使用不便、无法进行单元测试( s t r u t s t e s t c a s e 只能用 于集成) ,有些技术显得过时。 第二章j 2 e e 框架和l l v c 模式 2 w 曲w o r k 优点:结构简单易于扩展、标签库易于定制、拦截器非常出色,w e b w o r k 支持广泛的模板语言( v e l o c i y 和f r e e m a r k e r ) ,完整的t a g 支持, 模块写好后容易插入。一个i 瑟包就可以包括所有的a c t i o n 和v i e w ( 得益于f i l 的c l a s s p a t h 支持) ,和其他工具兼容性好。 缺点:文档示例较少、具有较多的配置 3 s p r i n gm v c 优点:稳定可扩展,支持了i 1 8 n 、文件上传、异常处理,这些稳定的支 持给开发者坚实的工作基础。与s p r i n g 集成,领先的i o c 原生支 持。 缺点:使用人数少、j s p 中要写很多代码、控制器过于灵活,缺少一个公 用控制器,不适合需要组件化开发的场景,配置较困难 4 j s f 优点:浏览器程序像桌面程序一样工作,j 2 e e 标准、易于开发、丰富的 导航框架,并可获得大量第三方支持。 缺点:j s f 标签差、技术不成熟、不适合大规模的、以读为主的网站。 在考虑系统设计时,综合以上各框架的特点,在开源领域,w e b w o r k 具有得 天独厚的优势,并且将来的s t r u t s a c t i o n2 0 即是以w e b w o r k 为核心【6 】,其内部机 制合理,故在选择开发框架时,以w e b w o r k 为优选。 2 2 4g v o 与j 2 e e 架构之间的关系 理解m v c 三个部分在j 2 e e 架构中处于什么位置,有助于我们理解m v c 模 式的实现。前面提到并提供了一个j 2 e e 体系层次结构图,m v c 与j 2 e e 架构间对 应关系是:用【8 】 v i e w 处于w e b 层或者说是客户端层,通常是j s p s e r v l e t s c o n t r o l l e r 也处于w e b 层,通常用s e r v l e t s 实现。 m o d e l 处于业务逻辑层,通常用服务器端j a v a b e a n 或者e j b 实现。 2 3 本章小结 本章介绍了现在常用的w e b 开发的j 2 e e 平台体系、m v c 设计模式以及他 们之间的关系,比较了几种m v c 实现框架的优缺点。 9 电子科技大学硕七学位论文 3 1w e b w o r k 框架 第三章应用框架介绍 正如前文所提到的,在1 v y v c 模式的实现技术中,s t r u t s 是一种流行的w e b 框 架,拥有大量的用户群体,但在构建大规模w e b 应用的时候,它并不能提供通常 所需的创造力发挥空间。w e b w o r k 的创造者和j b o s s 的创始人之一的r j c k a r d o b e r g 曾经说:“框架的强大之处不是源自于它能让你做什么,而是它不能让你做什么” r i c k a r d 所说的话解释了什么是框架:框架使混乱的东西变得结构化。然而,从另 一个角度说,限制严格的架构束缚了开发人员的手脚,开发人员的创造力空间收 缩了,甚至有些任务无法完成。很明显,一种完美的中间状态存在于无框架和严 格框架之间,这种梦寐以求的中间状态就w e b w o r k 的终极目标。【9 l w e b w o r k 是由o p e n s y m p h o n y 组织开发的,致力于组件化和代码重用的拉出 式m v c 模式j 2 e ew e b 框架。w 曲w b r k 目前最新版本是2 2 ,其前身是r i c k a r d o b e r g 开发的w e b w o r k ,但现在w e b w o r k 已经被拆分成了x w o r k l 和w e b w o r k 2 两个项目,如图3 一l 所示: 图3 一i g e b w o r k 功能结构图 x w o r k 简洁、灵活功能强大,它是一个标准的c o m m a n d 模式实现,并且完全 从w e b 层脱离出来。x w o r k 提供了很多核心功能:前端拦截机、运行时表单属性 验证、类型转换、强大的表达式语言( o g n l t h e o b j e c t g r a p h n o t a t i o n l a n g u a g e ) 、 i o c ( i n v e r s i o n o f c o n t r o l 反转控制) 容器等。 w e b w o r k 2 建立在x w o r k 之上,处理h r r p 的响应和请求。w 曲w o r l ( 2 使用 f i l t e r d i s p a t c h e r ( 过滤器) ,将m 1 p 请求变成a c t i o n ( 业务层a c t i o n 类) 、s e s s i o n ( 会话) 、a p p l i c a t i o n ( 应用程序) 、r e q u e s t 请求范围的参数映射。w e b w o r k 2 支持 1 0 第三章应用框架介绍 多视图表示,视图部分可以使用j s p , v e l o c i t y , f r e e m a r k e r ,x m l 等。 3 1 1w e b w o r k 的主要组成部分 1 f i l t e r d i s p a t c h e r ( 过滤器) 在w e b w o r k 2 之前,s e r v l e t d i s l ; a t c h e r 是默认的处理w e bh t t p 请求的调度器。 w e b w o r k 2 以后使用f i l t e r d i s p a t c h e r 作为前端控制器。f i l t e r d i s p a t c h e r 就是一个普 通的s e r v l e tf i l t e r ( 过滤器) ,所有对a c t i o n 调用的请求都将通过这个 f i l t e r d i s p a t c h e r 调度。在w e b x m l 里配置如下: w e b w o r k c o m o p e n s y m p h o n y w e b w o r k d i s p a t c h e r f i l t e r d i s p a t c h e r w e b w o r k 2 a c t i o n ( 动作) a c t i o n 是一次请求的控制器,同时也充当数据模型的角色,在m v c 模式中担 任控制部分的角色。每个请求的动作都对应一个相应的a c t i o n ,它是一个独立的 工作单元和控制命令,必需要实现x w o r k 里的a c t i o n 接口,实现a c t i o n 接口的 e x e c u t e 0 方法。在实际开发中,业务逻辑并不放在a c t i o n 中。 3 a c t i o n c o n t e x t ( a c t i o n 上下文) a c t i o n c o n t e x t ( c o r n o p e n s y m p h o n y x w o r k a e t i o n c o n t e x t ) 是a c t i o n 执行时的 上下文,上下文可以看作是一个容器( 其实这里的容器就是一个m a p ) ,它存放的 是a c t i o n 在执行时需要用到的对象,如:在使用w e b w o r k 时,我们的上下文存有 请求的参数、会话、s e r v l e t 上下文、本地化信息等。在每次执行a c t i o n 之前都会 创建新的a c t i o n c o n t e x t ,a c t i o n c o n t e x t 是线程安全的,也就是说在同一个线程里 a c t i o n c o n t e x t 里的属性是唯一的,这样a c t i o n 就可以在多线程中使用。 比较s t r u t s : p u b l i ca c t i o n f o r w a r de x e c u t e ( a c t i o n m a p p i n gm a p p i n g , a c t i o n f o r mf o r m , m t

温馨提示

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

评论

0/150

提交评论