(计算机应用技术专业论文)基于j2ee平台的struts框架和jsf框架的比较和研究.pdf_第1页
(计算机应用技术专业论文)基于j2ee平台的struts框架和jsf框架的比较和研究.pdf_第2页
(计算机应用技术专业论文)基于j2ee平台的struts框架和jsf框架的比较和研究.pdf_第3页
(计算机应用技术专业论文)基于j2ee平台的struts框架和jsf框架的比较和研究.pdf_第4页
(计算机应用技术专业论文)基于j2ee平台的struts框架和jsf框架的比较和研究.pdf_第5页
已阅读5页,还剩79页未读 继续免费阅读

(计算机应用技术专业论文)基于j2ee平台的struts框架和jsf框架的比较和研究.pdf.pdf 免费下载

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

文档简介

基于j 2 e e 平台的s t o a t s 框架和j s f 框架的比较和研究 的开发是基于组件的,一个组件就可以触发一个事件,而在s t r u t s 中实际是 个表单只能对应一个事件( 一个动作a c t i o n ) ,因此相对于s t r u t s 这种称为基 于请求的事件而言,i s f 的基于组件的事件是一种更细粒度的事件,这也是 s t r u t s 和j s f 最大的区别其次,s t r u t s 的j a v a b c a n a c t i o n f o r m 中只包含了与 页面相对应的属性,与页面相对应的行为则放在a c t i o n 类中,而j s f 的b a c k i n g b e a n 中同时包含了属性和相应的行为。另外,+ 两者在显示技术、实现、性能 方面也有差别。 本文在对两种框架进行介绍的基础上,从它们的基本概念和实现原理入 手,在基础构造、体系结构及扩展、性能、实现等方面进行了详细比较,指 出了两种框架的异同,并总结了它们各自的优点和缺点,从而谈到它们在j 2 e e w e b 应用中可以互为补充的可能性,进而提出在j 2 e ew e b 应用中集成使用 s 仃u t s 和j s f 两种框架,这样可以充分发挥它们各自的优点,并屏蔽掉它们的 缺点。本文在从理论充分论证集成使用两种框架的可行性基础上,通过一个 w e b 实例展示了集成s t r u t s 和j s f 的运行效果,并对在以后项目开发中如何 使用这两种框架给出了自己的见解。 2 关键词:j 2 e e 平台,m v c 模式,s t r u t s 框架,j s f 框架 a b s t r a c t n o w , i n f o r m a t i o nc o n s t r u c t i o nh o m ea n da b r o a da r ee n t e r i n gap e r i o dw h i c h i sb a s e do nw e ba p p l i c a t i o n , a n dj a v al a n g u a g ei sc a l l e dt h eb e s tp r o g r a m m i n g l a n g u a g e i n d e v e l o p i n gw e ba p p l i c a t i o n t h e r e f o r e j a v ae n t e r p r i s ea p p l i c a t o n s y s t e mb a s e d o nj a v ab c c o m ct h eb i g g e s tp a r ti nc o m p u t e rw e ba p p l i c a t i o n s y s t e m a tt h eb e g i n 血g , w eu s es e r v l e ta n dj s pt op r o g r a mw e ba p p l i c a t i o n , b u t t h e r ew a sal a r g eq u a n t i t i e so fc o d e si nd e v e l o p i n gm a n yf o r m a lt a s k s ak i n d so f 丘铀c w o l l 【sb a s c dj 2 e ea p p e a r st os i m p l yt h e s et a s k s m o s t o f t h e j 2 e e w e ba p p l i c a t i o n s a r g c o n s i s t o f a t l e a s t t h r e e t i e r sa c c o r d i n g t ot h e kr e s l x 塔i b i l i e s t h e s ea z r e :p r e s e n t a t i o nt i c r b u s i n e s s l o g i ct i e ra n d i n t e g r a t i o nt i e r e a c ht i e rh a sas o u n df u n c t i o n , a n di sn o t t ob em i x e dw i t ho t h e r t i e r s ag o o df r a m e w o r ki sd e 丘n e dt ot h ep r o b l e m so no n l yo n ec e r t a i nt i e r , a n dt o s o l v ea = t h ef r a m e w o r k 啪r e l e a s et h ed e v e l o p e r sf r o mt h eb o t t o mc o d i n g , e n a b l et h e r ac o n c f b t f a t eo nt h eb u s i n e s sl o g i c b o t hs t r u t sa n dj s fa r ee x c e l l e n t f r a m e w o r k so i lp r e s e n l a t i o nf i e r s t l u si so p e n s o u r c i n gf r o ma p a c h eo r g a n i z a t i o n w i t ht h ef l e x i b i l i t yo nt h ec o n t r o l l e rp a r t j a v a s e r v e rf a c e si st h ef i r s tf r a m e w o r k i nt h ej 2 e ew o r l dw i t hc h a r a c t e r i s t i c so fr a p i dd e v e l o p m e n t w h i c h 锄d e v e l o p c u s t o m i z eu s e ri n t e r f a c ei nw e ba p p l i c a t i o n b o t hs t r u t sa n dj s fa d o p tm o d e l - v i e w - c o n t o r l l e rp a t t e r n ,w h i c hd e t a c h d e s i g no fo b j e c to r i e n t e da n dv i s u a l i 2 e x li n t e r f a c e i nm v cp a t t e r n v i e wi su s e dt o i n t e r a c tw i t hu s e r s ,m o d e li st m s i n e s s l o g i ca n dd a t a , a n dc o n 仃o l l e ri st h ec o d e r e s p o n s i n g t h eu s e re v e n ta n di n t e g r a t i n gm o d e la n dv i e w m v cp a t t e r ne n s u r e a p p l i c a t i o ns o f t - c o u p l i n g , t h e r e f o r er e d u c i n g t h ed e p e n d e n c ea m o n gt h et h r e e 基于1 2 e e 平台的s t r u t s 框架和j s f 框架的比较和研究 t i e r s s l m t su 瞄j s pc u s t o m i z e dt a g sa n dm a r cp a t e nt oi m p r o v et h er e u s eo f c o d e sa n dt h en 韶m i l i t yo fc o n t r o l l e r s t r u t sb e c o m e st h ed e - f a c t os t a n d a r di nj 2 e e f o r , i t se a r l yp u b l i c a t i o n j s fp r o v i d e st h ew o n d e r f u lc o m p o n e n t sw h i c ha l er u n n i n g o n 靶e rs i d ea n dt c s p 0 雌i n gt ot h eu s e re v e n tf r o mt h ec l i e n t s m e a n w h i l e ,t h e r e a r es o l d ed i 伍e r c n c c $ b e t w e e nt h e m f i r s t , j s fi sb a s e d c o m p o n e n t sw h i c hc a n s t i m u l a t ea l le v e n t , b u tt h e r ei so n ef o r mr e l a t i n gt oo n ev e r ye v e n ti ns t r u t s s o c o m p o n e m s - b a s e d1 3 v e n ti nj s f i sp r e c i s e rt h a nt h er e q u e s t - b a s e de v e n ti ns t r u t s a n dt h i si st h ep r i m a r yd i f f e r e n c eb e t w e e ns t r u t sa n dj s e s e c o n d , j a v a b e a no f a c :t i o n f o r mi ns t r u t si n c l u d e so n l yd a t ar e l a t e dt ot h ep a g e s ,w h i l em e t h o d sa r ep u t i nt h ea c t i o nc l a s s b u ti nj s f , b a c k i n gb e a nb o t hi n c t u d e st h ea t t r i b u t e sa dr e l a t e d b e h a v i o u r s w h a t sm o r e ,t h e r e a r es o m ed i f f e r e n c e si n p r e s e n t a t i o n t e c h n o l o g y , r e a l i z a t i o na n dp e r f o r m a n c e b a s i n go nt h ei n t r o d u c t i o no ft h et w of r a m e w o r k s ,t h i st h e s i sc o m p a r e st h e i n f r a s t x u c t u r e ,s y s t e m ,e x t e n s i o n , p e r f o r m a n c ea n dr e a l i z a t i o no ft h e m a n dip o i n t t h e i rs i m i l a r i t i e sa n dd i f f e r e n c e s ,a n ds u m m a r i z et h e i ro w na d v a n t a g e sa n d d i s a d v e a x t a g e s t h e nw h e nc o n s i d e r i n gt h e i rm u t u a lc o m p l e m e n t 1t h i n kic a n i n t e g r a t es t r u t sa n dj s ft o g e t h e ri no n ej 2 e ew e ba p p l i c a t i o n w h i c hc 锄e n j o y t h e i ra d v a n t a g e sa n ds c t e e nt h e i rd i s a d v a n t a g e s t h i st h e s i sf i r s t p r o v e s t h e f e a s i b i l i t yo fi n t e g r a t i n g 。t h e t w of r a m e w o r k s t o g e t h e r o n t h e o r y , a n d t h e n d e m o n s t r a t et h ep e r f o r m a n c eo fi n t e g r a t i o nw i t haw e ba p p l i c a t i o n f i n a l l y , t h e r ei s s o m eo w no p i n i o n sa b o u th o wt oa p p l yt h et w of r a m e w o r k si n t ot h ed e v e l o p m e n t o fw e b a p p f i c a f i o m 2 k e yw o r d s :j 2 e ep l a t f o r m ,m v cp a t t e m ,s t r u t sf r a m e w o r k , j s ff r a m e w o r k 西南财经大学 学位论文原创性及知识产权声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容外, 本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对 本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标 明。因本学位论文引起的法律结果完全由本人承担。 本学位论文成果归西南财经大学所有。 特此声明 学位申请人:砷牧 2 0 0 7 年1 1 月j 8 日 0 绪论 0 1 研究背景 0 绪论 随着作为2 0 世纪最大的发明之一的i n t e r n e t 的快速发展,电子商务应运 而生,它给传统商业活动注入了不可估量的活力。在这个信息化的大潮中, 企业对于信息的依赖已经到了前所未有的程度,信息化的快慢直接决定着企 业的前途和命运。w e b 应用技术为企业提供了构建信息化的坚实基础和平台, 因此,如何快速开发高质量的企业级w 曲应用系统,以满足企业越来越纷繁 复杂的需求,已成为业界研究的一大热点面题 随着电子商务等企业级大规模w e b 应用的迅速推广,为了适应w e b 应用 开发的各种复杂需求,为用户提供更可靠、更完善的信息服务,两个最重要 的企业级开发平台j 2 e e 和n e t 在2 0 0 0 年前后分别由s u n 和m i c r o s o f t 阵营 推出,由此引发了在企业级w e b 开发平台领域的激烈竞争,也促使w e b 开发 技术以前所未有的速度发展。 o 2 国内外研究现状 然而,在企业级w e b 开发的高端领域,由于j 2 e e 平台优于n e t 的安全 性能、跨平台优势和无可比拟的经验优势,j 2 e e 在企业级开发的高端领域始 终占据统治地位。j 2 e e 架构采用分层结构,层与层之间相互独立,每个层提 供特定服务。又由于j 2 e e 的开源特性,因此,在j 2 e e 各层次结构中推出了 几十个非常优秀的框架。而s t r u t s 和j s f 正是在j 2 e e 架构的表现层中两个最 为出色的框架。 基于j 2 e e 平台的s t r u t s 框架和j s f 框架的比较和研究 0 2 1s t r u t s 框架概述 m v c ( m o d c l v i e w c o n t r o l l e r ) 模式是一种比较理想化的设计模式,m v c 通过将闯题分为三个类别来帮助解决单一模块方法所遇到的某些问题【1 】: 模型( m o d e l ) :模型包含应用程序的核心功能。模型封装了应用程序的状 态,有时它包含的唯一功能就是状态。它对视图或控制器一无所知。 视图( v i e w ) :视图提供模型的表示,它是应用程序的外观。视图可以访问 模型的读方法,但不能访问写方法。此外,它对控制器一无所知。当更改模 型时,视图应得到通知。 控制器( c o n t r o l l e r ) :控制器对用户的输入做出反应。它创建并设要模型。 s t r u t s 是a p a c h e 组织的一个项目,像其他的a p a c h e 组织的项目一样,它 也是开放源码项目。s 仃u t s 是基于m o d e l2 之上的,而m o d d2 是经典的m v c 模式的w e b 应用模型。因此s t r u t s 是一个比较经典的m v c 框架,提供了对 开发m v c 系统的底层支持1 2 。s t r u t s 采用的主要技术是s e r v l e t 、j s p 和j s p 定制标记库,并且是一个高度可配置、高度扩展性的框架 s t r u t s 也是利用控制器来分离模型和视图,达到一种层间松散耦合的效 果,提高系统灵活性、复用性和可维护性。而s t r u t s 的j s p 定制标记特性从 j s p 文件获得可重用代码和抽象j a v a 代码,这个特性能很好地集成到基于g s p 的开发工具中,这些工具允许用标记编写代码。对m v c 模式和s t r u t s 框架的 进一步介绍将在第1 章和第2 章进行。 0 2 2j s f 框架概述 j s fo a v a s e r v e rf a c e s ) 技术基于模型视图控制器( m v c ) 模式的把应用逻 辑和表现相分离的思想,是一种可以开发富有表现力的用户界面的w e b 应甩 的服务器端技术。这个技术使用s c r v l c t 作为控制器,在它的帮助下,开发者 可以解决像创建定制的用户界面组件这样的技术阎题【3 1 ,符合当前w e b 应用 程序领域的r a d 潮流。这是因为,j s f 技术是一项开发运行在服务器端的 w e b 应用程序的一个用户界面框架,它可以反过来向客户端提供用户界面州。 j s f 技术是建立w e b 应用程序用户界面的框架标准,它是通过 j c p q a v a c o m m e n i t yp r o c e s s ) 由j s r 1 2 7 专家组开发的。利用j s f 技术所提供 2 o 绪论 的程序模型,不同层次的开发者都能够迅速并且容易的开发w e b 应用程序, 他们只需要在一个页面上装配可重用的u i 组件,链接这些组件到应用程序数 据源,并且绑定客户端产生的事件到服务器端的事件处理器。 j s f 技术的设计是非常灵活的,在可扩展的u i 组件类仅仅定义组件的功 能,j s f 体系结构允许组件开发者去扩展这些组件类,从而为特定的客户端产 生他们自己的组件标记库 j s f 的简单易用源于它自身的体系结构。一方面,j s f 技术在行为和表现 之间提供了干净的分离;另一方面,j s f 技术创建的用户界面处理了所有的错 综复杂的界面管理,包括输入校验、组件状态管理、页面导航和事件处理【习。 基于w e b 开发的各个领域都可以享受到这项技术所带来的好处: 使用标记语言( 比如h r m i ) 的网页开发者可以使用j s p 标记库开发出丰 富多彩的j s f 用户界面。 令应用开发者可以专注于开发模型对象和进行事件处理。 令组件开发者可以在j s f 所提供组件的基础上开发新的定制组件。 工具提供商可以把j s f 技术集成到新版本的开发工具中用来简化基于 w e b 的多层应用的开发。 这项技术回时也首次打开了基于j a v a 的w e b 用户界面组件复用的市场, 开发者和工具提供商可以像搭积木一样使用j s f 定制组件来构建用户界面。 关于j s f 技术的详细介绍放在第3 章。 0 3 - 本文主要研究内容和创新 本文首先介绍了使用j 2 e e 架构进行w e b 开发的优势,并对j 2 e e 分层体 系中表示层所采用的m v c 设计模式进行了详细说明( 第1 章) ,然后引入对 采用m v c 设计模式的s t r u t s 框架( 第2 章) 和j s f 框架( 第3 章) 的关注。 随后从它们的基本概念和实现原理入手,在基础构造、体系结构及扩展、性 能、实现等方面进行了详细比较,归纳了两种框架的异同,并指出了它们各 自的优点和缺点( 第4 章) ,从而提出它们在j 2 e ew e b 应用中可以互为补充 的可能性,进而提出在j 2 e ew e b 应用中集成使用s t r u t s 和j s f 两种框架( 第 5 章) ,这样可以充分发挥它们各自的优点。本文在从理论上充分论证集成使 3 基于j 2 e e 平台的s l r t l t s 框架和j s f 框架的比较和研究 用两种框架的可行性基础上,通过一个w e b 实例展示了集成后的运行效果, 并对在以后项目开发中如何使用好这两种框架给出了自己的见解。 由于s t r u t s 问世较早,在国内应用范围较广,而j s f 在国内的应用才刚 刚起步,相应文档、书籍都较少,所以之前的论文大都是对s t r u t s 和j s f 中 某一个框架单独进行研究和开发实践,对两者的区别和联系也只停留在理论 上的片言片语。而本文不仅对两种框架进行了详细的比较分析,而且对它们 以后的应用提出了自己的看法,并尝试了在一个w e b 实践中集成二者。这些 正是本文的创新所在。 4 1j 2 e e 和m v c 设计模式 1 j 2 e e 和m v c 设计模式 1 1j 2 e e 平台介绍 1 1 1j 2 e e 简介 j 2 e e 从诞生到现在这些年里,它已经取代了多种专用的和非标准的技术, 成为人们建立电子商务以及其他基于w e b 的企业应用程序的首选技术。考虑 一下电子商务应用程序所需要的用量和技术基础设施的复杂性,就不难发现 j 2 e e 通过提供一种广泛的基础结构而适应了这一要求。现在j 2 既已经是建 立电子商务应用程序的两种可选的主要技术之一。 j 2 e e 与传统的i n t e r a c t 应用系统模型相比,有着不可比拟的优势。这种 模型在j 2 s e 之上添加了大量面向企业的特性和功能,以此简化企业解决方案 的开发、部署和管理等相关复杂问题。它不仅巩固了j 2 s e 中的许多优点,如 方便存取数据库的j d b c a p i 、c o r b a 技术以及能够在i n t e r a c t 应用中保护数 据的安全模式等,同时还提供了对e j b 、s c r v l e t 、j s p 以及x m l 等技术的全 面支持。 j 2 e e 的设计目的是为了推动企业应用的开发和部署,它通过提供企业计 算环境所必需的各种服务,使得部署在j 2 e e 平台上的多层应用可以实现高可 用性、安全性、可扩展性和可靠性。由于平台支持j a v a 语言,使得基于j 2 e e 标准开发的应用可跨平台移植,且由于j a v a 语言的安全、严格等特性,使开 发者可以编写出十分可靠的代码。 j 2 e e 提供了在企业计算中需要的所有服务,且简单易用;j 2 e e 中的多数 标准定义了接口,如j n d i 、j d b c 、j a v a m a i l 等,可与许多厂商的产品配合, 容易得到广泛的支持;通过提供统一的开发平台,j 2 e e 降低了开发多层企业 级应用的费用和复杂度,同时支持e j b 与现有系统集成,有良好的向导支持 5 基于j 2 e e 平台的s 姗b 框架和j s f 框架的比较和研究 打包和部署应用。j 2 e e 平台提供的多层分布式应用模型、组件重用、一致化 的安全模型以及灵活的事务控制,加快了企业应用的设计与开发,可以快速 容易地建立融合了i n t e r n c t 技术,尤其是w e b 技术的n 层结构的分布式企业 应用,也较好地解决了c s 结构所固有的可扩充性差、可维护性差、安全性 差、部署麻烦等弊端 6 1 。 1 1 2j 2 e e 的优势 ( 1 ) 减小系统更新代价【7 l :由于商业需求不断交化,企业的系统更新是不可 避免的。在更新系统的同时,利用已有的企业信息系统方面的投资,而不是 重新制定全盘方案就变得很重要。因为j 2 e e 拥有广泛的业界支持和一些重要 的企业计算领域供应商的参与,j 2 e e 架构可以充分利用用户原有的投资,如 一些公司使用的b e a t u x e d o 、i b mc i c s 、i b me n c i n a 、i n p r i v t s i b r o k 以及 n e t s c a p ea p p l i c a t i o ns e r v e r 。由于基于j 2 e e 平台的产品几乎能够在任何操作 系统和硬件配置上运行现有的操作系统和硬件也能被保留使用。 ( 2 ) 高效的开发:j 2 e e 的架构提高了代码的重用型,允许公司把一些通用 的、很繁琐的服务器端任务交给中间件供应商去完成,这样开发人员可以集 中精力在如何创建商业逻辑上,相应地缩短了开发时间。 ( 3 ) 支持异构环境:j 2 e e 拥有多种厂家支持的不同平台,开发人员能够通 过开发部署在异构环境中的可移植程序在各种平台上运行。基于j 2 e e 的应用 程序不依赖任何特定操作系统、中间件、硬件,因此设计合理的基于j 2 e e 的 程序只需一次开发就可以部署到各种平台。 “) 可用性稳定:在企业的生产运行中,一个服务器端平台必须能全天候 运转以满足公司客户、合作伙伴的需要。j 2 e e 部署到可靠的操作环境中,它 们支持长期的可用性,这是实时性很强的镝业系统理想的选择。 ( 5 ) 可伸缩性:随着企业的不断发展,系统平台无疑也需要不断更新,因 此企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去 满足那些在他们系统上进行商业运作的大批新客户。基于j 2 e e 平台的应用程 序可被部署到各种操作系统上,j 2 e e 领域_ 自勺供应商提供了更为广泛的负载平 衡策略,能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数 1 j 2 e e 和m v c 设计模式 千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。 1 1 3j 2 e e 架构层次划分 ( 1 ) 架构定义 根据i e e e 标准定义,架构是在组件、其彼此间和与环境间的关系,引导 设计发展原则中体现的系统的基本结构:是对软件系统组织、结构部分和系 统包含接口的选择,是对较大子系统部分的构成和架构风格的重大决定的设 置。架构上的设计决定为系统开发、支持和维护提供概念上的基础嗍。 标准还定义了以下概念: 系统是为实现某些特殊作用的组件的集合。一个系统是为了实现一个或 多个任务而存在。 组件是包括内容的系统模型部分,且它的显示是可替换的。组件定义了 所需接口的行为。 环境决定了开发、操作、策略和其他影响系统的设置和条件。 任务是指系统为了实现对对象设置的使用或操作。 ( 2 ) j 2 e e 架构规范原则 a _ 层次化 按功能不同进行技术层次划分,使各层功能相对独立。同时以接口形式 来描述各层之间的调用关系,以达到层次之间的松散耦合。 b 独立性 各层所提供功能不依赖于一种具体的技术或者产品实现,应该提供一定 范围的技术选择。 c f 无关性 技术架构不和具体的应用框架绑定,有很宽的使用范围,适合于以后应 用的扩展 d 前瞻性 架构设计时应该有一定的前瞻性,以适应未来的技术发展趋势和业务需 求的变化 7 基于j 2 e e 平台的协框架和j s f 框槊的比较和研究 c 安全性 安全性是系统免受非法攻击的能力。在技术层面,采用身份认证、访问 控制、密码服务、备份恢复等措施,保护系统和数据免受非法的访问、使用、 修改或者泄密。架构应适于组件化的设计,也便于进行组件级别的安全控制【9 j 。 ( 3 ) 层次划分 建立于j a v a 编程语言和j a v a 技术基础之上的j 2 e e 平台往往被设计为 面向对象的多层体系的结构,所以本文将j 2 e e 的层次做了模型化,规范为 五个层次:客户层、表现层、业务层、集成层和资源层,如图1 1 所示: g 王五雯豆三五) 一互m 规和i 设4 1 - - - - 应用客户嗤 印】e t 应用程序和其他g u i” 图1 1j 2 e e 架构的层次 扎客户层( c l i e n tt i e r ) 客户层指的是访问应用的客户端设备和工具,包括浏览器、电话等。b s 模式的客户层指的是w e b 浏览器。基于浏览器的瘦客户端不包含任何表示逻 辑,它依赖于p r e s e n t a t i o n 层提供显示内容。 b 表现层( p r e s e n t a t i o nt i 曲 表现层接收客户端的h t r p 请求提供系统登录、会话管理、访晦控制、 数据封装和交易分发等功能。p r e s e n t a t i o n 层将b u s i n e s s l o g i c 层的服务展示 给用户,它应知道如何处理用户的请求,如何同b u s i n e s s - l o s i c 层交互,并且 知道如何选择下一个视图显示给用户。为保证架构整体的扩展性,表现层的 架构设计必须能够满足业务层不同框架的切换。 1j 2 e e 和m v c 设计模式 c 业务逻辑层( b u s i n e s s l o g i cn e r ) 业务逻辑层是j 2 e e 架构的核心层,接受来自于p r e s e n t a t i o n 层的请求, 基于请求处理业务逻辑。b u s i n e s s - l o g i c 层包含应用的b u s i n e s so b j e c t s 和 b u s i n e s ss e r v i c e s 业务逻辑层的组件将受益于系统级的服务,如安全管理、 事务管理和资源管理等。 d 集成层( i n t e g r a t i o nt i e r ) 集成层向业务层提供统一的内部和外部资源访问,为业务层的数据访问 请求屏蔽不同的数据存储访问技术,以及与外部系统整合技术的差异性。 e 资源层( r e s o u r c e n 啪 资源层主要指数据库、文件系统和外部系统。 图1 2 表示本规范所描述的分层结构与所采用的技术实现选择范围的关系 客户层 l 表现层 l 业务层 ; 集成层 资源层 l 固 匡习l 圆 回 l 叵l 回l 叵l 匣 _ 巴= | 匕二j 图1 2 分层规范及实现技术 1 2m v c 模式在j 2 e e 架构中的应用 1 2 1 设计模式的概念 设计面向对象的软件比较困难,而设计可复用的面向对象的软件就更加 困难。对象设计应该对问题有针对性,同时对将来的问题和需求也要有足够 的通用性。有经验的蕊向对象设计者能做出良好的设计,当找到一个好的解 9 基于j 2 e e 平台的s 帅饵框架和j s f 框架的比较和研究 决方案时,他们会一遍又一遍地使用。因此,你会在许多面向对象系统中看 至q 类和相互通信的对象的重复模式1 1 叭。这些模式解决特定的设计问题,使面 向对象设计更灵活、优雅,最终复用性更好。它们帮助设计者将新的设计建 立在以往工作的基礁上,复用以往成功韵设计方案,这就是通常所说的设计 模式 将面向对象软件的设计经验作为设计模式一一记录下来,每一个设计模 式系统地命名和解释了面向对象系统申一个重要的和重复出现的设计。设计 模式使人们可以更加简单方便地复用成功的设计和体系结构,帮助做出有利 于系统复用的选择,避免设计伤害了系统复用性。 1 2 2m v c 模式结构 m v c ( m o d e l v i e w - c o n t r o l l e r ) 是一种交互界面的结构组织模式,是x e r o x p a r c 在八十年代为编程语言s m a l l t a l k 8 0 发明的一种软件设计模式1 1 l 】。m v c 模式允许一个开发看将一个可视化接口连接到一个面向对象的设计中,通过 创建模型( m o d e l ) 、视图( 、i i 哪) 和控制器( c o n t r o l l e r ) - - - 个层,m v c 将面向对象 的设计与可视化接口分开。 m v c 模式提供了一种按功能对各种对象进行分割的方法,强制性地使应 用程序的输入、处理和输出分开,其目的是为了将各对象间的耦合程度减至 最小使用m v c 的应用程序被分成三个核心部件【埘:模型、视图、控制器。 它们各自处理自己盼任务,如图1 1 3 所示 1j 2 e e 和m v c 设计模式 查询 圈1 3 m v c 模式结构 视图m 州代表用户交互界面,对于w e b 应用来说,可以概括为h t m l 界面,但有可能为x h t m l 、x m l 和a p p l e t 。随着应用的复杂性和规模性, 界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,m v c 设计 模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而 不包括在视图上的业务流程的处理旧。比如一个订单的视图只接受来自模型 的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。 模型( m o d e l ) 就是业务流程、状态的处理以及业务规则的制定。业务流程 的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最 终的处理结果【1 4 1 【坷。业务模型的设计可以说是m v c 最主要的核心,如前所 述的e j b 就是一个典型的模型应用的例子,按这种模型设计就可以利用某些 技术组件,从而减少了技术上的困难。m v c 并没有提供模型的设计方法,而 只告之应该组织管理这些模型,以便于模型的重构和提高重用性。业务模型 还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保 存和读取。比如将一张订单保存到数据库,或从数据库获取订单。我们可以 将这个模型单独列出,所有有关数据的操作只限制在该模型中。 控制器( c o n t r o l l e r ) 可以理解为从用户接收请求,将模型与视图匹配在一 起,共同完成用户的请求。控制器就是一个分发器,选择什么样的模型和视 图,可以完成什么样的用户请求,都由它决定。控制器并不做任何的数据处 基于j 2 e e 平台的s t r u t s 框架和j s f 框架的比较和研究 理,它接受用户的输入并调用模型和视图去完成用户的需求【1 6 1 所以当单击 w e b 页面中的超链接和发送町m l 表单时,控制器本身不输出任何东西和做 任何处理,它只是接收请求并决定调用哪个模型构件去处理请求,然后确定 用哪个视图来显示模型处理返回的数据 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如 果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据 的视图都应反映出这些变化。因此,无论何时发生了何种数据变化,控制器 都会将变化通知所有的视图,导致显示的更新【埘。 1 。2 3m v c 模式实现流程 实现基于m v c 的应用需要完成以下流程,如图1 4 所示。 分析应用问题对系统进行分析 l 弋7 设计和实现每个视图 之乡 设计和实现每个控制器 。 之乡 使角可安装和卸载的控制器 固1 4 m v c 实现流程 ( 1 ) 分析应用问题,对系统进行分离。分析应用问题,分离出系统的内核 功能、对功能的控制输入、系统的输出行为三大部分i 堋。设计模型部件使其 封装内核数据和计算功能,提供访问显示数据的操作,提供控制内部行为的 操作以及其他必要的操作接口。以上形成模型类的数据构成和计算关系。这 部分的构成与具体的应用问题紧密相关。 ( 2 ) 设计和实现每个视图设计每个视图的显示形式,它从模型中获取数 据,将它们显示在屏幕上。 1j 2 e e 和m v c 设计模式 ( 3 ) 设计和实现每个控制器。对于每个视图,指定对用户操作的响应时间 和行为。在模型状态的影响下,控制器使用特定的方法接受和解释这些事 件【1 9 j 控制器的初始化建立起与模型和视图的联系,并且启动事件处理机制。 事件处理机制的具体实现方法依赖于界面的工作平台。 ( 4 ) 使用可安装和卸载舶控制器。控制器的可安装性和可卸载性,带来了 更高的自由度,并且帮助形成高度灵活性的应用。控制器与视图的分离,支 持了视图与不同控制器结合的灵活性,以实现不同的操作模式,例如对普通 用户、专业用户或不使用控制器建立的只读视图。这种分离还为在应用中集 成新的v o 设备提供了途径。 由此可见,m v c 模式的处理过程可以这样表述:首先控制器接收用户的 请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用 户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并 通过表示层呈现给用户。 1 2 4m v c 模式在w e b 系统中的应用 现在的一些基于w e b 的分布式系统如b 2 b 电子商务系统。就适合采用 m v c 模式。通过分析,从高层次的角度可以将一个应用的对象分为三类,一 类就是负责显示的对象,一类对象包含商业规则和数据,还有一类就是接收 请求;控制对象去完成请求f 2 l 】。这些应用的显示是经常需要变换的,如网页 的风格、色调,还有需要显示的内容、内容的显示方式等。而商业规则和数 据是相对要稳定的1 2 z j 。因此,表示显示的视图对象经常需要变化,表示商业 规则和数据的模型对象要相对稳定。而负责控制的控制器则最稳定。 视图代表系统的显示,它完全存在于w e b 层,一般由j s p 、j a v a b e a n 和 c u s t o m t a g 组成。j s p 可以动态生成网页内容,c u s t o m t a g 更方便了j a v a b e a n 的使用,而且它可以封装显示逻辑,更有利于模块化和重用。一些设计良好 的c u s t o m t a g 可以在多个j s p 甚至可以在不同的系统里重复使用田j 。j a v a b e a n 用来控制j s p 和模型对象,j s p 通过j a v a b e a n 来读取模型对象中的数据,模 型和控制器对象则负责对j a v a b e a n 的数据更耕冽。一般来说,应该先设计出 所有可能出现的视图,即用户使用系统时可以看到的所有内容,然后根据这 基于j 2 e e 平台的s t r u t s 框架和j s f 框架的比较和研究 些内容,找出公共部分、静态部分和动态变化部分。 模型对象代表了商业规则和商业数据,存在于e j b 层和w e b 层。在j 2 e e 的规范中系统有些数据需要存储于数据库中,也有一些不需要记录在数据 库里鲋蠲。这些商业数据存在于哪一层要根据它们的生命周期和范围来决定。 在w e b 层有h t t p s e s s i o n 和s e r v l e t c o n t e x t 及j a v a b e a n 对象来存储数据,在 f i b 层则有e j b 来存储数据和逻辑。w e b 层j a v a b e a n 的模型对象存储了口b 层模型对象的数据拷贝冽。因为彤b 层有很多不同的模型对象,所以w e b 层 可以通过一个m o d e lm a n a g e r 来控制e i b 层的各个对象。 控制器对象协调模型与视图,把用户请求转换成系统识别的事件。在w e b 层,一般有一个s e r v l e t 接收所有请求,它可以调用视图流管理器( v i e wf l o w m 姐a g c r ) 决定下一个视酬2 7 】,一般还有一个请求处理器( r e q u e s t p r o e e s s o r ) ,包 含所有请求都需要做的处理逻辑,如把请求转换成系统事件等。请求处理器 通常还包含一个代理对象,它是啪层的逻辑处理在w e b 层的代理。在e j b 层,有一个客户端控制器提供w e b 层对e j b 层的只读访问,还有一个 s t a t e m a c h i n e 用来管理f j b ,处理w e b 层送来的事件闭。 1 2 - 5m v c 模式的优点 早期的w e b 应用,一般都是采用面向过程的语言进行开发,如a s p , p h i 等,其开发过程都是对数据、业务逻辑和现实界面进行混合编程。譬如,直 接将从数据库检索出的数据通过h t m l 表格显示出来,这样,开发速度会比 较快,但由于数据和界面的分离不完全,很难体现出业务模型的结构,也很 难对w e b 应用中的组件进行复用,产品的弹性很小,很难适应用户需求的变化。 m v c 通过对应用分层,虽然在一定程度上增加了开发的工作量,但产品 的逻辑清晰,结构灵活,极大地提高了软件的成熟度。 其优点主要体现在以下几个方面【冽: 首先,多个视图可以对应一个模型。作为一个大型系统,不同的用户有 可能采用完全不回的方式访问系统。例如,有的用户通过f c 浏览器,而有的 用户利用手机通过w a y 或g p r s 进行网络访问,而他们访问的内容却是相同 的。这样,按m v c 设计模式,同一个模型,针对不同的情况,采用不同的视 1

温馨提示

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

评论

0/150

提交评论