已阅读5页,还剩75页未读, 继续免费阅读
(计算机应用技术专业论文)集成struts和jdo的j2ee架构研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 近年来,随着网络技术的迅速发展和j 2 e e 平台的广泛采用,基于b s 的多 层w e b 体系结构逐渐发展成熟起来。m v c 设计模式分离了数据的控制和数据的 表现,在实现多层w e b 应用系统中具有明显的优势。s t r u t s 是一个基于j 2 e e 平 台、实现了m v c 设计模式的框架,它全面减轻了构建多层w e b 应用的负担, 提供可复用的软件构架。s t r u t s 中对象持久性通常由j d b c 或者e j b 来实现,采 用j d b c 可以很容易地用s q l 语句同时访问多个异构的数据库,为异构的数据 库之间的互操作奠定基础。它提供了一个很好的机制,可以使应用程序代码与 具体的数据库厂商和数据库位置无关。但使用j d b c 有如下缺点:只有使用兼容 j d b c 标准的关系数据库;对数据库编程麻烦乏味,容易出错;需要熟悉s q l 语言而且s q l 语言在各数据库不完全兼容。而如果使用e j b ,虽然e j b 提供了 透明的持久性、可移植性和灵活的事务管理。但它同样带来了以下局限:设计 复杂性;构建周期很长;响应时间长;e j b 消耗了大量系统资源。 针对上述问题,本文首先对j d o 这个新的轻量级持久性规范进行了研究探 讨,简单介绍了j d o 技术规范的历史形成以及它的体系结构,具体分析它的各 种生命状态以及在生命状态中主要的转换过程,解释了它的身份标志的含义, 并陈述了持久性描述符的命名规范和它的元素,阐述了使用j d o 实现对象持久 性的流程和发展现状,并把它与其他常用持久性技术进行了对比,总结了利用 j d o 开发的优势。 随后在分析了基于s t r u t s 框架的j 2 e e 架构中实现对象持久性局限性的基础 上,从中分离出对象持久层,把j d o 这个面向对象的轻量级对象持久性技术集 成到该架构中,提出了个符合多层w e b 体系结构特点的改进架构。 本文重点分析了此架构的实现原理和关键技术,说明了该架构所具有的特 点。这个架构模型充分利用j d 0 的优势,使开发出的w e b 应用程序具有很多优 点,比如它其有良好的设计思想,便于实现系统的大规模开发和管理,利于系 统业务的重用和改动,节约开发成本和时间,具有良好的系统性能和可移植性 等等。最后,在该架构的基础上设计开发了一个“网上药店”,并给出了实现过 程,说明了该架构的可行性。 关键字:j d o ,对象持久性,j 2 e e ,s t r u t s ,软件架构 a b s t r a c t i nr e c e n ty e a r ,w i mt h er a p i dd e v e l o p m e n to f n e t w o r ka n de x t e n s i v ea d o p t i o no f j 2 e ep l a t f o r m ,m u l t i l a y e rw e bs t r u c t u r eb a s e do nb sg r o w su pg r a d u a l l y m v c d e s i g np a t t e r ns e p a r a t e sc o n t r o lo f d a t af r o mr e p r e s e n t a t i o no fd a t a , a n dt h e r e f o r eh a s t h e a d v a n t a g e o fi m p l e m e n t a t i o no fm u l t i l a y e rw e ba p p l i c a t i o n s s t r u t si st h e a p p l i c a t i o nf r a m e w o r kt h a ti m p l e m e n t sm v c b a s e do nj 2 e ep l a t f o r m i te a s e st h e b u r d e no f c o n s t r u c t i n gm u l t i - l a y e rw e ba p p l i c a t i o n sa n dp r o v i d e sr e u s a b l es o f t w a r e a r c h i t e c t u r e i ns t r u t s ,o b j e c tp e r s i s t e n c eg e n e r a l l yi si m p l e m e n t e dt h r o u g hj d b ca n d e j b j d b cc a na c c e s s e a s i l y s e v e r a lk i n d so fd a t a b a s e s s y n c h r o n o u s l yb ys q l l a n g u a g ea n db u i l dab a s eo fo p e r a t i n ge a c ho t h e ra m o n g t h e m i tp r o v i d e sag o o d m e c h a n i s mt h a tm a k e st h ea p p l i c a t i o ni si n d e p e n d e n to fv e n d o r sa n dl o c a t i o no ft h e d a t a b a s e b u tj d b ch a sa l s om a n yd e f i c i e n c i e s f o re x a m p l e ,w ec a no n l yu s ea c o m p a t i b l ed a t a b a s ew i t hi t ,p r o g r a m m i n g o fd a t a b a s ei sc o m p l e xa n dd u l la n de a s i l y m a k e sm i s t a k e s ,w en e e dm a s t e rs q l l a n g u a g eb u ts q ll a n g u a g eo fe a c hk i n do f d a t a b a s ei s i n c o m p l e t e l yc o m p a t i b l e o nt h eo t h e rh a n d ,a l t h o u g he j bs u p p o r t s t r a n s p a r e n tp e r s i s t e n c e , m a k e a p p l i c a t i o nt r a n s p l a n t a b l e a n d p r o v i d e s f l e x i b l e t r a n s a c t i o nm a n a g e m e n t ,i tm a k e sp r o g r a mm o r ec o m p l e x ,w a s t e sm o r et i m et ob e b u i l ta n d r e s p o n s e ,i ta l s on e e d s v a s ts y s t e mr e c o u r s e s a si ss t a t e d a b o v e ,f i r s t l y t h i st h e s i sd i dr e s e a r c hi nj d ot h a ti san e w l i g h t w e i g h tp e r s i s t e n c ec r i t e r i o n i ti n t r o d u c e dt h ef o r m a t i v eh i s t o r yo f j d oa n di t s a r c h i t e c t u r e ,a n a l y z e d i t sk i n d so fl i f e c y c l es t a t e sa n dm a i nl i f e c y c l et r a n s i t i o n s , e x p l a i n e dw h a ti sj d oi d e n t i t y , r e p r e s e n t e dh o w t on a n l et h ep e r s i s t e n c ed e s c r i p t o r a n di t s e l e m e n t s ,e x p o u n dt h ep r o c e s so fi m p l e m e n t i n go b j e c tp e r s i s t e n c et h r o u g h j d oa n dc u r r e n ts t a t u so fj d o t h i st h e s i sa l s oc o m p a r e dj d ot oo t h e rp e r s i s t e n c e t e c h n o l o g y a n ds u m m a r i z e di t sa d v a n t a g e t h e nt h et h e s i sa n a l y z e dt h el o c a l i z a t i o ni ni m p l e m e n t i n go b j e c tp e r s i s t e n c eo f t h ej 2 e ea r c h i t e c t u r eb a s e do ns t r u t sa n dd i v i d e dt h eo b j e c tp e r s i s t e n c et i e rf r o mi t a n dt h e ni n t e g r a t e dj d o ,al i g h t w e i g h to b j e c to r i e n t e dp e r s i s t e n c et e c h n o l o g y , i n t o t h ea r c h i t e c t u r ea n db u i l tab e t t e ra r c h i t e c t u r ew h i c hm e e tt h ec h a r a c t e r i s t i co f n t i e s l i w e ba r c h i t e c t u r e t h i st h e s i s e m p h a t i c a l l ya n a l y z e d t h e t h e o r ya n dk e yt e c h n o l o g yo ft h e a r c h i t e c t u r ea n di n t r o d u c e di t sc h a r a c t e r i s t i c t h ea r c h i t e c t u r et o o kt h ea d v a n t a g eo f j d 0w e l la n dm a d e d e v e l o p e da p p l i c a t i o nw i t hi th o l dm u c h b e n e f i t f o re x a m p l e i t h a sg o o d d e s i g nt h e o r ya n d i se a s yt oi m p l e m e n tt h ed e v e l o p m e n ta n d m a n a g e m e n t o f al a r g e s c a l ea p p l i c a t i o ns y s t e m ,m a k et h es y s t e mb u s i n e s sr e u s a b l ea n dr e v i s a b l e , s a v ec o s ta n dt i m e ,h o l db e t t e rs y s t e mp e r f o r m a n c ea n dt r a n s p l a n t a b l ec h a r a c t e r i s t i c , a n ds oo n f i n a l l y , at y p i c a lw e ba p p l i c a t i o n - - o n l i n ed r u g s t o r e - - - i sd e s i g n e da n d i m p l e m e n t e du s i n g t h i sa r c h i t e c t u r e k e y w o r d s : j d 0 ,o b j e c t p e r s i s t e n c e ,j 2 e e ,s t r u t s ,s o f t w a r e a r c h i t e c t u r e 1 1 1 武汉理工大学硕士学位论文 第1 章绪论 随着软件规模和复杂度的同渐升级,人们越来越深刻地认识到良好的软件 架构对保证系统的成功至关重要。早先的由大型机和哑终端组成的集中式计算 模式在网络技术的推动下发展到以c s 结构为代表的两层模式,c s 结构的客 户端庞大、服务器容易成为瓶颈等缺点促使多层分布式结构的出现。而随着网 络融入人们的生活,各种w e b 应用系统也应运而生,然而随着用户需求的不断 变化和市场竞争的日益激烈,这些w e b 应用系统必须不断地改进其内容和形 式,而解决该问题的关键是选择正确的软件架构。本文正是在现有架构基础上 提出了一个改进的软件架构模式。 1 1课题研究背景 1 1 1 应用系统架构的发展过程 1 1 1 1 c i i e n t s e r v e r 的兴起及其局限性 随着数据库技术的进一步深入发展和待处理的信息数量的日益膨胀,人们 都希望系统内部的主要管理信息能够彼此共享,开放式网络环境下典型的“客 户机服务器( c l i e n t s e r v e r ,c s ) ”数据库管理系统应运而生,c s 架构成为分 布式处理的主流 1 】。 采用这种架构方式,能充分发挥现有p c 的运算能力,可以随着用户的需 要增减设备,具有表达能力强、可塑、分布、移植性好等优点。c s 架构可以 充分利用各种现有硬件和软件平台,提高系统的性能价格比。另外,由于所有 对数据库的查询操作都由充当数据库服务器的计算机来进行,所以在网络服务 器上存在一个活动的数据库服务进程,从而使网络负担大大得到减轻,还能更 好地保证数据的一致性。由于“客户机服务器”模式较之传统的文件服务器模 式有较大的性能改善,所以一段时间以来,典型的c s 架构模型取得了巨大成 功。 然而,事物的发展常常不是一步到位的,随着i n t e m e t 技术的广泛应用, 武汉理工大学硕士学位论文 出现了i n t r a n e t 的概念后,这种c s 结构显现了许多不足:在地理位置较分散 的众多工作站上安装和升级系统非常不便;随着客户数目的不断增加,系统性 能就会不断下降,甚至出现瓶颈的状况;在多用户、多数据库的环境下,可能 造成用户长时间等待,带有死锁和系统崩溃的潜在可能性。这便导致了如下的 b r o w s e r s e r v e r 模式的产生。 1 1 1 2b r o w s e r s e r v e r 三层架构的建立 随着i n t e m e t 技术日益普及,大量的商业活动已在i n t e m e t 网上如火如荼的 迅猛展开。在典型的“客户机朋艮务器”体系中那种为客户安装前端应用程序的 方法已不在现实,甚至限制客户端的工作环境只能基于w i n d o w s ,或u n i x 等 亦不切实际。不但软件开发成本上涨,而且客户端的计算环境可能是千变万化 的,无法预知客户端的计算环境什么时候已经或者将要做出何种改变。而有一 种客户端构件已经遍及i n t e r n e t 每个角落,这个构件便是浏览器。 用浏览器作为数据库查询的前端,有着解决专用数据库前端的可移植性问 题和扩展w e b 功能的双重含义。这种计算模式称为b r o w s e r s e r v e r ,它采用三 层结构即b r o w s e r w e bs e r v e r d a t a b a s es e r v e r 组成了浏览器、w e b 服务器和数 据库服务器的三层计算模式。这种计算模式方便了原有的c s 中客户机与服务 器的联系。三层b s 模式增加了较厚的中间件,形成“瘦客户机一胖中间层一 瘦服务器”的计算模式,比较适合于i n t e m e t i n t r a n e t 的数据库发布信息系统。 客户端只需安装和运行浏览器软件,在w e b 服务器端安装w e b 服务器软件和 数据库管理系统。b s 结构提供了一个跨平台的简单一致的应用环境,与传统 的管理信息系统相比,实现了开发环境与应用环境的分离,使开发环境独立于 用户的应用环境。 1 1 1 3现状 s u n 公司提出的j 2 e e 架构以其安全、跨平台等优点已经逐渐成为企业w 曲 应用开发的标准。它利用j a v a 2 平台简化了与企业解决方案的开发、部署和管 理相关问题,提供了一个企业级的计算模型和运行环境,用于开发和部署多层 体系的应用。j 2 e e 提供的多层分布式应用模型、组件重用、一致化的安全模型 以及灵活的事件控制,加快了应用程序的设计和开发,可以容易、快速地建立 融合i n t e m e t 技术尤其是w e b 技术的n 层( n - - t i e r s ) 结构的分布式企业应用。 武汉理工大学硕士学位论文 基于j 2 e e 技术的b s 结构具有可维护性好、可扩展性好、安全性好等优点, 较好地解决了c s 结构所固有的可维护性差、可扩展性差、安全性差、部署麻 烦等弊端。 最近几年,m v c 模式被引入到j 2 e e 平台。基于m v c 模式的j 2 e e 应用 开发在实际应用中,受到越来越多的欢迎。m v c 模式利用控制器来分离模型 和视图,达到层间松散耦合的效果,能够有效地解决在w e b 应用系统开发过程 中由于系统结构的复杂程度较高而带来的诸多关键性问题,如代码之间的耦合 问题,代码的易维护性问题,组件的可重用性问题,不同技能的开发人员如何 分工的问题等等。 而s t r u t s 作为一个不断升级中的开源项目,功能越来越强大,已经成为m v c 模式的首选框架,在国内外许多大型b s 项目中得到应用。 1 1 2 实现对象持久性的方式 对象是某个类的实例,任何对象都有自己的状态、属性和行为方法。一些 对象的存储时间会超过创建这些对象的j a v a 虚拟机自身的生命周期,我们把这 种存储方式称为对象的持久性( o b j e c t p e r s i s t e n c e ) 。 目前,程序开发人员所采用的对象持久性技术,比较常见的方法主要是借 助关系数据库管理系统( r e l a t i o n a ld a t a b a s em a n a g e m e n ts y s t e m ,r d b m s ) 、 文件存储和对象数据库存储管理( o b j e c td a t a b a s em a n a g e m e n ts y s t e m , o d b m s ) 系统来实现。其中最为流行的还是采用关系数据库管理系统,它通 过综合使用j d b c 和s q l 来访问这类关系数据库管理系统。一个实现对象持久 性的应用程序架构通常都是基于某种数据存储技术之上的,e j b 和企业应用程 序集成框架也不例外。 但目前的对象持久性技术都不能很好地满足当前程序开发设计中面向对象 的处理需求。j a v a 数据对象( j a v ad a t ao b j e c t ,j d o ) 基于这种原因提出一种 对象持久性规范,j d o 规范的出台,给了传统的数据库应用,尤其是w e b 方式 的数据库应用一个新的机会,即采用透明的中间件存储技术,减少传统开发的 繁琐工作,提高开发和维护的效率 2 。 武汉理工大学硕十学位论文 1 2本文所研究内容 论文主要针对j 2 e e 架构中s t r u t s 框架的局限性进行了解决,给出了一个把 j d o 集成到s t r u t s 框架的新的j 2 e e 架构模式的解决方案。那么,集成j d o 技 术到底可以给w e b 项目开发带来哪些好处昵? 可以先看看j d o 所具备的优点: 由于j d o 完全支持对象模型,使系统无需再进行o r 映射,简化了开发难 度,缩短了开发时间,降低了系统的开发成本,增进了代码的可复用性。它的 透明持久性和通用持久性,最大限度地掩藏了数据存储的实现细节,使其可以 处理任何类型的数据源,进而改善了系统的可维护性和可移植性:同时由于掩 藏了数据存储的实现细节,使得对项目开发进行纵向划分成为可能,解放了开 发人员在数据底层的工作,使他们可以集中精力考虑业务逻辑方面的事物。另 外由于j d o 对底层数据库操作进行了大量的优化,而这些优化,一般的程序开 发人员由于自身的经验,都比较难以做到,比如分布式缓冲、j d b c 2 0 和 j d b c 3 0 中的一些面向性能优化的高级处理等等。因此,我们使用j d o 技术能 提供系统性能。 本文所研究的主要内容包括以下几个方面:分析了j 2 e e 三层架构和m v c 模式,对基于s t r u t s 框架的j 2 e e 架构进行了研究,分析了基于s t r u t s 框架的j 2 e e 架构存在的不足;针对该架构存在的不足,对j d o 的关键技术进行了研究,并 和其他持久性技术进行了对比;讨论并提出了集成s t r u t s 和j d o 的j 2 e e 架构 模式;最后给出了该架构的具体实现方式,并完整地用该架构模式实现了一个 网上药店平台。 1 3 文章组织结构 全文共分7 章: 第一章:绪论,阐述论文研究背景、研究内容及文章组织结构; 第二章:介绍j 2 e e 架构和m v c 模式,研究了基于s t r u t s 框架的j 2 e e 架 构,分析了基于s t r u t s 框架的j 2 e e 架构的不足; 第三章:数据持久性技术研究,对当前各种持久性技术进行了对比,对j d o 关键技术进行了研究,对j d o 与其他持久性技术进行了对比,并总结了j d o 在开发中的优势。 武汉理工大学硕士学位论文 第四章:针对基于s t r u t s 框架的j 2 e e 架构存在的不足,提出了实现集成 s t r u t s 和j d o 的j 2 e e 架构的具体方式; 第五章:基于该架构的网上药店平台的设计、实现。 第六章:总结与展望。对本论文的工作进行总结,指出了本文中许多值得 研究和探讨的问题,对今后的工作做了展望。 武汉理工大学硕士学位论文 第2 章基于s t r u t s 的j 2 e e 架构 2 1j 2 e e 架构和m v c 模式 2 1 1j 2 e e 的四层模型 j 2 e e 使用多层的分布式应用模型,应用逻辑按功能划分为构件,各个应用 构件根据他们所在的层分布在不同的机器上。事实上,s u n 设计j 2 e e 的初衷正 是为了解决两层模式( c l i e n t s e r v e r ) 的弊端,在传统模式中,客户端担当了过多 的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级 或改进,可伸展性也不理想,而且经常基于某种专有的协议通常是某种数 据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在j 2 e e 的多层企业 级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为 不同的每种服务提供一个独立的层,以下是j 2 e e 典型的四层结构:运行在客 户端机器上的客户层构件、运行在j 2 e e 服务器上的w e b 层构件、运行在j 2 e e 服务器上的业务逻辑层构件和运行在e i s 服务器上的企业信息系统层软件【3 。 在应用开发时,j 2 e e 定义的四层模型可根据实际情况灵活运用。由于除了 a p p l e t 外其他的构件都可以访问数据库、e j b 组件和企业信息系统,所以通过 不同层的取舍及组合,可以衍生出许多应用软件开发模型,如基于w e b 的四层 模型、基于桌面应用的三层模型( 不包括w e b 层) 、b 2 b 模型( 不包括客户层) 等。如果应用系统比较简单,一般不用e j b 作为逻辑层,而直接用w e b 构件来 实现商业逻辑和数据访问,毕竟e j b 的开发和部署费用还相当高。 j 2 e e 应用程序是由构件构成的j 2 e e 构件是具有独立功能的软件单元,它 们通过相关的类和文件组装成j 2 e e 应用程序,并与其他构件交互。j 2 e e 说明 书中定义了以下的j 2 e e 构件【4 】 5 : 应用客户端程序和a p p l e t s 是客户层构件 j a v as e r v l e t 和j a v a s e r v e r p a g e s ( j s p ) 是w e b 层构件 e n t e r p r i s ej a v a b e a n s ( e j b ) 是业务层构件 j 2 e e 多层应用模型如图2 1 所示: 武汉理工大学硕士学位论文 j 2 e e ) 立用1 j 2 e e h i i 用2 圈客户习机器 e 习阚 1 2 e 跳用服务器 匡匹习业刮 臣丑臣习到 图2 1j 2 e e 的四层结构模型 2 1 1 1 客户层构件 6 数据库服务器 j 2 e e 应用可以是基于w e b 的,也可以是不基于w e b 的。在一个基于w e b 的j 2 e e 应用中,用户的浏览器在客户层中运行,并从一个w e b 服务器上下载 w e b 层中的静态h t m l 页面或由j s p 或s e r v l e t 生成的动态h t m l 页面。 在一个不基于w e b 的j 2 e e 应用程序中,一个独立客户程序,或者不运行 在一个h t m l 页面中,而是运行在其它一些基于网络的系统( 比如手持设备或 汽车电话) 中的a p p l e t 程序,在客户层中运行,并在不经过w e b 层的情况下访 问e n t e r p r i s e b e a n s 。该不基于w e b 的客户层可能也包括一个j a v a b e a n s 类来管 理用户输入,并将该输入发送到在企业层中运行的e n t e r p r i s eb e a n 类来处理。 根据j 2 e e 规范,j a v a b e a n s 类不被视为构件【7 】 8 】【9 】。 为j 2 e e 平台编写的j a v a b e a n s 类有实例变量和用于访问实例变量中的数据 的“g e t 和s e t 方法”。以此种方式使用的j a v a b e a n s 类在设计和实现上通常都是 简单的,但是它们必须符合j a v a b e a n s 规范中列出的命名和设计约定。 2 1 1 2w e b 层构件 j 2 e e w e b 构件可以由j s p 页面、基于w e b 的a p p l e t s 以及显示h t m l 页面 的s e r v l e t s 组成。调用s e r v l e t s 或者j s p 页面的h t m l 页面在应用程序组装时与 w e b 构件打包在一起【1 1 1 2 】【1 3 】【1 4 1 5 】。 7 武汉理工大学硕士学位论文 就像客户层一样,w e b 层可能包括一个j a v a b e a n s 类来管理用户输入,并 将输入发送到在业务层中运行的e n t e r p r i s eb e a n s 类来处理。运行在客户层的 w e b 构件依赖容器来支持诸如客户请求和响应及e n t e r p r i s eb e a n 查询等 2 1 1 3业务层构件 业务代码由运行在业务层的e n t e r p r i s eb e a n s 来执行。一个e m e r p r i s e b e a n 从客户程序处接收数据,对数据进行处理( 如果需要) ,再将数据发送到企业信 息系统层存储。一个e n t e r p r i s eb e a n 还从存储中检索数据,并将数据送回客户 程序。运行在业务层的e n t e r p r i s eb e a n s 依赖于容器来为诸如事务、生命期、状 态管理、多线程及资源存储池提供通常都非常复杂的系统级代码0 0 。 业务层经常被称作e n t e r p r i s ej a v a b e a n s ( e j b ) 层。业务层和w e b 层一起 构成了3 层j 2 e e 应用的中间层,而其它两层是客户层和企业信息系统层。 2 1 1 4企业信息系统层( e i s ) 企业信息系统层运行企业信息系统软件,这层包括企业基础设施系统、大 型机事务处理、数据库系统及其他遗留信息系统( 1 e g a c y i n f o r m a t i o ns y s t e m s ) 。 例如,j 2 e e 应用构件可能为了数据连接需要访问企业信息系统。 2 1 2 基于m v c 模式的j 2 e e 架构 2 1 2 1 m v c 设计模式 1 6 】 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 i l l t a l k - 8 0 发明的一种软件设计模式,早期它主要是用于设计用户界 面。目前m v c 模式已趋于完善,并成为一种典型的面向对象设计模式,它所 应用的范围也不仅仅局限在用户界面上,最近几年被推荐为s u n 公司j 2 e e 平 台的设计模式,受到越来越多的w e b 开发者的欢迎。m v c 强制性地把应用程 序的输入、处理、输出分开,它把应用程序分成3 个核心模块:模型( m o d e l ) , 视图( v i e w ) ,控制器( c o n t r o l l e r ) 。 模型( m o d e d ,本质上封装了数据及行为,其中包含对数据控制及修改的规 则,提供了一套查询、改变m o d e l 状态的方法。 视i 虱( v i e w ) ,是m o d e l 所表示出来的图形界面,它主要用于提交m o d e l 的 信息展示给用户。 武汉理工大学硕士学位论文 控制器( c o n t r o l l e r ) ,是m o d e l 和v i e w 之间的纽带,负责v i e w 与m o d e l 之 问的同步,也就是完成两个方向的动作:根据用户对v i e w 对象的操作完成对 m o d e l 对象的更新;将m o d e l 对象状态的改变及时反映到v i e w 对象上。 m v c 能为我们的系统设计带来如下好处: 设计清晰,使界面设计同数据操作完全隔离开来,两者之问通过 c o n t r o l l e r 来交互,三个部分可以各自独立进行开发,只需要知道其它部分所提 供的接口即可。这允许多个视图可以共享一个模型。除此之外,如果模型更新 由控制器完成,那么界面就可以跨应用再使用,大大提高了代码的可重用性。 有利于团队分工合作,独立开发,这意味着不同的专业人员可以在自己 所擅长的领域进行开发,例如熟悉界面的人员负责v i e w ,熟悉软件流程的人员 负责c o n n d l l e r ,熟悉业务的人员负责m o d e l ,使得大家可以发挥所长。 将系统分解为三部分,除了对开发带来相当的好处之外,还对系统的测 试及维护带来了相当的便利,因为三部分之间的接口通常都是确定的,所以即 使修改也只需在很小的范围内进行。例如,如果把数据库从m y s q l 移植到 o r a c l e ,只需改变模型即可。 控制器提高了应用程序的灵活性和可配置性。控制器可以用来连接不同 的模型和视图去完成用户的需求,也可以为构造应用程序提供强有力的手段。 给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进 行处理,然后选择适当的视图将结果显示给用户。 2 1 2 2 基于附c 模式的j 2 e e 架构 j 2 e e 模型提供了一个很好的企业应用框架及解决方法,但是多层企业应用 框架在提高了软件的重用性和分解了问题的复杂性的同时,也使得代码庞大, 层与层之间的控制关系复杂。而m v c ( m o d e lv i e wc o n t r o l l e r ) 模式可以利用控制 器将应用的业务逻辑一模型和应用的表示逻辑一视图进行分离,使应用的各层 之间达到一种松散祸合的效果,所以,人们将m v c 模式应用于j 2 e e 应用开发。 在j 2 e e 企业应用开发中,采用m v c 模式,首先,它能使软件开发有章可 循,结构清晰,缩短开发周期;其次,它能有效地改善软件系统的性能,大大 提高软件的可维护性与可扩展性。 基于m v c 模式,j 2 e e 应用被分成三个核心部分( 如图2 2 ) 1 7 模型( m o d e l ) :应用的业务逻辑,通过j a v a b e a n ,e j b 组件实现。 武汉理工大学硕士学位论文 视图( v i e w ) :应用的表示层,它用来呈现m o d e l 的内容,决定如何把数 据表示出来,当m o d e l 改变时,v i e w 要跟着改变,以维持数据的一致性。同时, v i e w 负责把用户的操作意图传给c o n t r o l l e r ,w e b 上的v i e w 由j s p ,j a v a b e a n s 实现,标准c l i e n t 上的v i e w 由j a v a 图形界面等组成。 控制器( c o n t r o l l e r ) :提供应用的处理过程控制,它是结合模式和视图的 纽带,解释用户的操作意图,并把它交给m o d e l 去执行,并且根据请求以及执 行结果来决定下一次显示哪一个视图。一般是一个s e r v l e t 。 浏 剑( 控s e r v l e t 览 畿 器 响应 竺ji i w e b 服务器应用服务器和数据库 2 2s t r u t s 框架 图2 2 基于m v c 的j 2 e e 应用模型 s t r u t s 项目作为一个设想是c r a i g r 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 e f o u n d a t i o n 的j a k a r t a 项目的一部分。 s t r u t s 是实现m v c 设计模式的一个优秀的应用框架,它具有以下一些优点 1 8 : 具有采用m v c 设计模式的所有可获得的特性和优点; 提供了一个方便的方法对应用程序的信息进行国际化; 1 0 武汉理工大学硕士学位论文 设计良好、功能强大的标记库; 开放源码: 提供了灵活的体制来处理错误和异常 2 2 1s 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 pm 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 ,x m l 等这些表示层组件相结合。 s t r u t s 框架是对m v c 设计模式的实现,下面分别从模型,视图,控制器三 方面来看看s t r u t s 的体系结构 1 7 e 1 8 1 。如图2 3 所示。 :s e r v l e t j s p 容器; 图2 3s t r u t s 的体系结构 视图( 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 g i c 等1 来 达到这个目的,并有利于分开表现逻辑和程序逻辑。 模型( m o d e l l 模型以一个或几个j a v a b e a n 的形式存在。这些b e a n 分为三种: 1 ) f o r m b e a n s ( 表单b e a n s ) 它保存了h t t pp o s t 请求传来的数据,在 s t m t s 里,所有的f o r mb e a n s 都是a c t i o n f o r m 类的子类。 2 ) 业务逻辑b e a n s 专门用来处理业务逻辑。 3 ) 系统状态b e a n s 它保存了跨越多个h t t p 请求的单个客户的会话信 息,还有系统状态,一般为实体对象模型。 控制器( c o n t r o l l 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 c t i o n f o r w a r d 则制定了不同业务逻辑或流程的运行方向。 2 2 2s t r u t s 的工作原理 对于采用s t r u t s 框架的w e b 应用,在w e b 应用启动时就会加载并初始化 a c t i o n s e r v l e t ,a c t i o n s e r v l e t 从s t r u t s c o n f i g x m l 文件中读取配置信息,把它们 存放到各种配鼍对象中,例如a c t i o n 的映射信息存放到a c t i o n m a p p i n g 对象中 【1 8 。 当a c t i o n s e r v l e t 接收到一个经s e r v l e tf i l t e r 过滤的用户请求时,将执行如 下流程( 如图2 4 ) : 检索和用户请求匹配的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 m 对象,把客户提 交的表单数据保存到a c t i o n f o r m 对象中; 根据配置信息决定是否需要表单验证,如果需要验证,就调用 a c t i o n f o r m 的v a l i d a t e ( ) 方法; 武汉理工大学硕士学位论文 专知m 一缸。 7y 上 a c t 例l 雌f 2 。i 回 i 创建l 争 e x e c u t e ( ) ) _ 一执行需要的 a o t i o n 实例i ,i 业务逻辑 i 处理f返网 、 a c t i o n f o r w a r d 【a c t i o n f o r w a r d , 淼蔷 蒿 图2 4s t r u t s 框架的工作流程 如果a c t i o n f o r m 的v a l i d a t e o 方法返回n u l l 或返回一个不包含 a c t i o n m e s s a g e 的a c t i o n e r r o r s 对象,就表示表单验证成功: 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 实例不存在,就先创建这个实例,然后调用 武汉理工大学硕士学位论文 a c t i o n 的e x e c u t e ( ) 方法; a c t i o n 的e x e c u t e ( ) 方法返回一个a c t i o n f o r w a r d 对象,a c t i o n s e r v l e t 再 把客
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 慢性咳嗽高分辨率CT检查策略优化
- 感染性心内膜炎脾脓肿的耐药菌感染手术策略
- 踢脚线安装协议书合同
- 时尚潮流运营方案书
- 企业培训师评估标准模板
- 社会公益项目恪守诚信承诺书(3篇)
- 环保能源技术创新承诺书4篇范文
- 旅客碰撞测试题及答案
- 大学学习指南形考网络形考任务作业题库及答案
- 社工师考试题目及答案2025
- 高级劳动关系协调师学习笔记
- 光伏全套知识教程培训课件
- 中小企业年度财务审计报告范本
- 2025中国储备粮管理集团有限公司招聘笔试试题及答案
- 专业建设经验分享与总结报告
- 雅思阅读课件模板
- 检测进度计划及保障措施
- (2025年标准)年会编排协议书
- 太阳能太阳能光伏发电
- 四川省土地开发项目预算定额标准
- 供应链中台体系构建与应用
评论
0/150
提交评论