




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 近些年来,j 2 e e ( j a v a2p l a t f o r m ,e n t e r p r i n s ee d i t i o n ) 技术作为一种建 立企业应用的标准平台出现,并逐步成熟,得以飞速发展。j 2 e e 平台使用了大 量不同的技术标准如j a v as e r v e rp a g e s ( j s p ) ,j a v as e r v l e t 。e n t e r p r i n s e j a v a b e a n s ( e j b ) ,j a v am e s s a g es e r v i c e ( j m s ) ,j a v an a m i n ga n dd i r e c t o ry i n t e r f a c e ( j n d i ) 等,提供了多层分布式应用模型、组件复用能力、统一的安全 模型和灵活的事务处理,为开发和配置企业应用提供了健壮和稳定的服务。 框架技术与设计模式是j 2 e e 中很重要的软件重用技术,框架技术通过重用 提高了软件的生产效率,j 2 e e 项目是通过框架、模式的设计运用达到控制软件 质量的目的。虽然这在一定程度上限制了开发人员的发挥创造,但是它带来了稳 定的软件质量和可重用的组件,尤其适用于较大型项目的开发。 s t r u t s 是实现m v c 模式的具体应用框架之一,其核心为一个灵活的、基于 j a v a s e r v l e t s ,j a v a b e a n s ,x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 等标准技术的 控制层。s t r u t s 提供了自己的控制器组件,还整合e j b ,j d b c 等数据访问技术 构造模型组件,整合j s p ,x s l t 等接口表示技术构造视图组件。 设计模式是在设计面向对象软件的过程中记录的知识和经验。用一系列类结 构和对象行为来具体描述设计模式的含义。在这样一个预先定义的设计结构的基 础上,根据具体应用完成具体的设计。设计模式的目的就是复用这些面向对象软 件设计的解决方案以便于这些抽象解决方案的积累和交流。 本文从网上购物系统的实际出发,引入了一个改进后的s t r u t s 框架,同时 从占本系统很大比例的数据增、删、改、查操作中抽象出了一个数据操作通用框 架,在框架的设计过程中运用了一些设计模式。系统具有高可靠性、可扩展性和 可重用性的特点。 关键词:软件架构s t r u t s网上购书系统 a b s t r a c t i nt h el a s tf e wy e a r s ,j 2 e ea p p e a r sa st h es t a n d a r dp l a t f o r mw h i c hi sak i n do f t e c h n o l o g yt ob u i l de n t e r p r i s ea p p l i c a t i o n s ,a n di tm a m r e s ,d e v e l o p sp r o g r e s s i v e l y t h ep l a t f o r mu s e sal a r g ea m o u n to f d i f f e r e mt e c h n i c a ls t a n d a r d ss u c ha sj a v as e r v e r s p a g e s ( j s p ) , j a v as c r v l e t , e n t e r p r i s ej a v a b e a n s ( e j b ) j a v am e s s a g es e r v i c e ( j m s ) , j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ( j n d l ) ,e t e i to f f e r sn - t i e rd i s t r i b u t e d a p p l i c a t i o nm o d e l ,r e u s e dc o m p o n e n t sa b i l i t y , u n i f i e ds e c u r i t ym o d e la n df l e x i b l e t r a n s a c t i o np r o c e s s ,i to f f e r ss t r o n ga n ds t a b l es e r v i c ef o rd e v e l o p i n ga n dd i s p o s i n g e n t e r p r i s ea p p l i c a t i o n f r a m e w o r kt e c h n o l o g ya n dd e s i g np a t t e r n s ,w h i c ha r ct h ev e r yi m p o r t a n t s o f t w a r er e u s et e c h n o l o g i e si nj 2 e e ,i m p r o v e st h ep r o d u c t i o ne f f i c i e n c yo fs o f t w a r e t h r o u g hr e u s e t h ep r o j e c t so fj 2 e ea c h i e v et h eg o a lo fc o n t r o l l i n gt h es o f t w a r e q u a l i t yt h r o u g ht h ed e s i g na n da p p l i c a t i o no ff r a m e w o r ka n dp a t t e r n s a l t h o u g hi t l i m i t st h ec r e a t i o no ft h et e c h n i c i a na tac e r t a i ne x t e n t , i tp r o d u c t ss t a b l ys o f t w a r e q u a l i t ya n dr e u s em o d u l ea n di se s p e c i a l l y t h es a m ew i t hd e v e l o p m e n to ft h e l a r g e s c a l ep r o j e c t s t r u t si so n eo f a p p l i c a t i o nf r a m e w o r k sb a s e do nt h em v cd e s i g np a r a d i g m t h e c o r eo f t h es t r u t sf r a m e w o r ki saf l e x i b l ec o n t r o ll a y e rb a s e do ns t a n d a r dt e c h n o l o g i e s l i k ej a v as e r v l e t s ,j a v a b e a n s ,a n dx m l ( e x t e n s i b l em a r k u pl a n g u a g e ) s t r u t s p r o v i d e si t so w nc o n t r o l l e rc o m p o n e n ta n di n t e g r a t e sw i t ho t h e rt e c h n o l o g i e st o p r o v i d et h em o d e la n dt h ev i e w f o rt h em o d e l ,s t r u t sc a ni n t e r a c tw i t ha n ys t a n d a r d d a t aa c c e s st e c h n o l o g y , i n c l u d i n ge n t e r p r i s ej a v ab e a n s ,a n dj d b c f o rt h ev i e w , s t r u t sw o r k sw e l lw i t hj a v as e r v e rp a g e s ,x s l t , a n do t h e rp r e s e n t a t i o ns y s t e m s d e s i g np a t t e r n sa l et h ek n o w l e d g ea n de x p e r i e n c er e g i s t e r i n gi nt h ec o u r s eo f t h e d e s i g n o fo b j e c t o r i e n t e d s o f t w a r e i td e s c r i b e st h e m e a n i n g so fd e s i g np a t t e r n s c o n c r e t e l yb yas e r i e so f c l a s ss t r u c t u r ea n do b j e c t i nt h eb a s eo f t h ed e s i g ns t r u c t u r e w h i c hi sd e f i n e db e f o r e h a n d ,i ta c c o m p l i s h e st h em a t e r i a ld e s i g nf r o mt h em a t e r i a l a p p l i c a t i o n t h eg o a lo fd e s i g np a t t e r n s i sr e u s et h es o l v i n gs c h e m eo f t h e s eo b j e c t - o r i e n t e ds o f t w a r e d e s i g n s s ot h a tw ec a l l a c h i e v et h e a c c u m u l a t i o na n d c o m m u n i o no f t h e s ea b s t r a c ts o l v i n gs c h e m e s f r o mt h er e q u i r e m e n to fw e bs h o p p i n gs y s t e m ,s t r u t sf r a m e w o r kt h a th a sb e e n i m p r o v e di si n t r o d u c e d ,a tt h es a m et i m ead a t ao p e r a t i o nc u r r e n c yf r a m e w o r ki s a b s t r a c t e df r o mt h ea d d i t i o n ,d e l e t i o n ,m o d i f i c a t i o n ,q u e r yo p e r a t i o n st h a th a v et h e m o s tp e r c e n to f t h es y s t e m i nt h ec o u l - s eo f f r a m e w o r k d e s i g ns o m ed e s i g np a t t e r n s a t eu s e d t h es y s t e mh a st h ec h a r a c t e f i s f i c so fh i g hr e l i a b i l i t y , e x p a n f i b i l i t ya n d1 - e u s e a b i l i t y k e yw o r d s :s o t h a r ef r a m e w o r k , s t r u t s ,w e b b o o k s h o ps y s t e m 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得叁鲞盘茎或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:强证 签字日期:如石年男月玎日 学位论文版权使用授权书 本学位论文作者完全了解鑫鲞盘鲎有关保留、使用学位论文的规定。 特授权鑫洼太鲎可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 劳蒸 导师签名:幽 签字日期:抑6 年妒月巧同签字日期:力0 6 年p 月可r 天津大学硕士学位论文第一章绪论 1 1 课题研究意义 第一章绪论 寻求在软件开发过程中设计级的重用的想法由来己久,这个领域的一个突破 就是设计模式的提出。软件设计模式的概念得益于一个建筑设计师c h r i s t o p h e r a l e x a n d e r 的工作,他定义了一种模式语言,成功的描述了建筑物和城市中的建 筑布局,许多软件业的人发现a l e x a n d e r 的工作非常具有吸引力,这导致了九十 年代初在软件领域内应用模式的讨论。在1 9 9 4 年8 月召开的程序模式语言( p l o p ) 会议,它推动了软件模式的发展。在1 9 9 5 年初,一个被称成为“四人组”的小 组( g o n go ff o u r ) 出版了一本书设计模式:可复用面向对象软件的基础,这本 书包含了设计模式的一个基本目录,并且确定了模式为软件学科的一个新领域。 在开发w e b 应用系统的过程中,经常会遇到这样的问题:如何进行系统的框 架设计才能更有利于模块化的设计与编码、今后功能的扩展以及系统快速有效的 维护? 每次的系统开发中,我们都需要根据实际应用寻找一个新的解决方案。为了 提高开发的效率,考虑到应用系统的灵活性、安全性、实用性等,就需要有一种 好的设计模式,一个好的可复用的系统架构的框架设计作为一种可行的方案来解 决这一常见的问题。m v cc m o d e l - v i e w - c o n t r o l l e r ) 模式是国外用的比较多的一 种设计模式。很多的开源项目,就是利用这一设计思想,己将其做成了w e b 框架。 w e b 框架有很多,例如t u r b i n e ,j e t s p e e d ,t a p e s t r y ,s t r u t s 。它们各有优点, 而且功能强弱也不同,在以上框架中本文只重点讨论使用最为广泛的s t r u t s 框 架在开发中的应用。 s t r u t s 框架是个在不断升级中的开源项目,新的版本会不断的增加功能, 越来越强大。稳定的s t r u t s l 1 版已经在国内外许多的大型w e b 应用项目中得到 应用,最新的s t r u t s l 2 1 也己经发布了测试版,本文的研究是基于s t r u t s l 1 版的。应用系统可以由多种语言,不同的平台实现,比如微软的、n e t ,s u n 的 j 2 e e 。本文选择j 2 e e 作为构筑企业应用的平台,以基于m v c 设计模式的s t r u t s 框架在系统中的应用为线索展开讨论。由于j a v a 语言的广泛应用,与其相关的 技术和各种设计思想飞速发展,种类繁多。在设计一个系统的时候,面对如此多 的技术和设计思想,孰优孰劣,如何选择呢? 本文在分析了系统的五层架构设计 天津大学硕士学位论文第一章绪论 之后,又进一步针对核心层做了详细的分析和设计,讨论了每层可采用的主流技 术,这对于应用系统的设计和开发有很强的指导意义。 1 2 论文研究内容 网上购书是在i n t e r n e t 开放的网络环境下,基于浏览器服务器应用方式, 实现消费者的网上交易和在线电子支付的一种新型的商业运营模式。网上购书将 传统的购书流程电子化、数字化,一方面以电子流代替了实物流,可以大量减少 人力、物力;另一方面突破了时间和空问的限制,使得交易活动可以在任何时间、 任何地点进行,极大地方便了最终消费者,使您的购书过程变得轻松、快捷、方 便,从而大大提高了效率。 目前大多数网上购书系统是基于两层体系结构来进行设计和开发的。随着 i n t e r n e t 的飞速发展,传统的两层体系结构面临着严峻的挑战,其中最为突出 的问题是开发负担重、维护困难等。本文针对目前网上购书系统所面临的问题, 基于j 2 e e 框架,采用框架技术及设计模式,设计开发了一个网上购书系统。系 统具有高可靠性、可扩展性和可重用性的特点。 1 3 论文组织结构 第一章是绪论,简要介绍了研究背景,以及研究内容和论文组织结构。第二章, 介绍了m v c 设计模式与s t r u t s 应用框架,探讨了s t r u t s 的结构及其优点。第三 章改进了s t r u t s 框架,并将其运用到网上购书系统的设计中,在系统的设计中 也采用了几个经典的设计模式。第四章对全文傲了总结,并做了展望, 天津大学硕士学位论文第二章m v c 设计模式与s 咖协应用框架 第二章r v c 设计模式与s t r u t s 应用框架 2 1 设计模式 在面向对象系统的设计中,可以认为,类及其生成的对象是构成面向对象系 统的最基本元素:采用设计方法组合这些元素,得到构成面向对象系统的构件, 同时,这些构件的设计方法在经过不断的改进和完善后逐渐成型,成为构成面向 对象系统的基本设计参考,也称为设计模式( d e s i g np a t t e r n ) 。 开发人员一般采用设计模式来抽象和总结系统构件的设计方法,同时将它 应用于新的系统构件的设计中。使用类和对象,使开发人员在元素的层次上实现 了重用性:而使用设计模式,则是在系统构件的层次上实现了重用性。设计模式 使开发人员可以更加简单方便地复用成功的设计和体系结构,同时对将来的问题 和需求也具有足够的通用性。将己证实的技术表述成设计模式,可以使新系统的 开发者更加容易理解原有的设计思路和方法。 设计模式在很大程度上改善了软件程序结构,使设计具有更好的弹性。它 提供了在特定应用场景下解决问题的类、对象及相互关系的设计方法。这些方法 并不针对于具体的系统,只是提供了一种设计系统的思路,这样做只是为系统搭 起了一个“空架”,要真正的完成系统的开发还需要完成许多具体的编程工作。 一个设计模式可能用于不同的系统,一个系统也可能会用到多个设计模 式。使用合适的设计模式,不但使代码可重用性、可扩展性得到增强,而且最重 要的是能够加快系统的开发速度,提高开发效率。 2 2w e b 应用系统开发的一般模型 在w e b 应用开发技术的发展史上,曾经涌现出了多种技术。但是随着具有优 秀跨平台性的j 2 e e 平台的出现和发展,越来越多的w e b 应用开始在j 2 e e 平台上 进行开发。而作为j 2 e e 平台主要组成部分之一的j s p ,逐渐受到了开发人员的 广泛青睐,在w e b 应用系统的开发过程中占据了重要的一席之地。这是因为j s p 页面不仅拥有跨平台和跨w e b 服务器的特性,而且可以非常容易的将业务逻辑、 服务器端处理过程和静态h t m l 页“所见即所得”的功能相结合,同时实现显示、 业务逻辑和流程控制等功能,从而帮助开发人员快速的完成任务。 天津大学硕士学位论文第二章m v c 设计模式与s t r u m 应用框架 j s p 技术规范给出了两种使用j s p 开发w e b 应用的方式,这两种方式可以归 纳为模型- - ( m o d e l1 ) 和模型二( m o d e l2 ) ,两者的主要差别在于它们处理业务 的流程不同。 2 2 1m o d e l1 模式 在很多情况下,一组j s p 页面就可以构成一个完整的w e b 应用。这种以j s p 页面为中心,以j a v a b e a n 处理业务逻辑的开发模型被称作m o d e l1 。在这一模 型中,j s p 页面独自响应请求并将处理结果返回给客户,所有的数据通过 j a v a b e a n 来处理,j s p 实现页面的表现。这种模型的体系结构如图2 1 所示。 a p p l i c a t i o ns e r v e r 一鱼蜘l - 畦叫 j s p g 。r 呻, - q 蓦 杳 驾 图2 1m o d e l l 系统结构 从图2 - 1 可以看出m o d e ll 体系结构的工作流程如下: 1 从客户端的w e b 浏览器读取用户请求,并将请求发送到j s p 页面: 2 j s p 页面调用相应的业务逻辑j a v a b e a n 处理请求: 3 j a v a b e a n 根据用户请求操纵位于e i s 层的数据库: 4 j a v a b e a n 取得返回结果: 5 j a v a b e a n 将取得的结果传送给j s p 页面: 6 3 s p 页面将结果生成h t t p 文档返回给客户端。 j s p 文件是构成m o d e l1 的基础,它独立接收和响应用户请求,并将处理结 果返回客户。总的来说,这种模式的优点是简单,可以很好的满足小型应用开发 的需求。虽然这种模型也实现了页面表现和业务逻辑相分离,然而不加选择地大 量使用这种模型,就需要在j s p 页面中嵌入大量脚本小程序( s c r i p t ) 或j a v a 代码,尤其是在需要处理的业务逻辑比较复杂时,这种情况会变得非常糟糕。大 量的嵌入式代码会使整个页面程序变得异常复杂。虽然对j a v a 开发人员而言, 这似乎不算是大问题,但如果j s p 页面是由美工人员创建并维护( 大型项目通常 如此) ,则代码的开发和维护将出现困难。显然,这种模型不适合大型应用的需 天津大学硕士学位论文 第二章m v c 设计模式与s l m m t s 应用框架 求。在任何应用,尤其是企业级应用的开发过程中,使用这种模型难免会导致定 义不清的响应和项目管理的困难。 此外,这种模型还存在另一个缺陷:每个j s p 页面必须单独负责管理应用程 序的状态、验证与安全性。 2 2 2m o d e i2 模式 m o d e l2 也称作j s p + s e r v l e t + j a v a b e a n s 开发模型。这一模型结合了j s p 和 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 用来处理请求的事务,充当一个控制者的角色,并负责向客户发送 请求:它创建j s p 需要的b e a n 和对象,然后根据用户请求的行为。决定将哪个j s p 页面发送给客户。这种模型的体系结构如图2 - 2 所示。 请求 一i s e r v l e l ( 控钥器) r 琴 l ,j s po i 响应 一 l ( 枧图) i 图2 - 2 m 0 d e l 2 体系结构 从开发的观点来看,m o d e l2 具有更清晰的页面表现,清楚的开发角色划分, 可以充分发挥开发团队中的网页设计人员和j a v a 开发人员的才干。这些优势在 大型项目中表现得尤为突出,网页设计人员可以充分展示自身的美术和设计才能 来表现页面,而程序编写人员可以充分发挥自己的业务逻辑处理思维来实现业务 处理。 另外,从设计结构来看,这种模型充分体现了模型一视图一控制器( m v c ) 的 设计模式。事实上,现存的很多开发框架都是基于这种模型的,例如a p a c h e s t r u t s 框架、j a v as e r v e rf a c e s 框架等。 天津大学硕士学位论文第二章m v c 设计模式与s t r u t s 应用框架 2 3m v c 设计模式 2 3 1w c 设计模式的结构 正是由于m o d e l1 在开发过程中存在许多缺陷,因此基于m v c 设计模式的 m o d e l2 成为了在j 2 e e 平台上开发大型w e b 应用的首推架构。 m v c 是x e r o xp a r c 在八十年代为编程语言s m a l l t a l k - 8 0 发明的一种软件设 计模式。它属于结构型设计模式,对于生成结构严谨的模块化应用程序的有效性 已得到了广泛的证实。m v c 的核心是实现三层甚至多层的松散耦合,它将一个应 用系统分为三个组件: ( 1 ) m o d e l :模型指的是真正完成任务的代码,包含应用系统的核心功能, 表示一个应用系统的数据,并且包含访问、维护和管理这些数据的逻辑。所有属 于应用系统持久状态的数据都应该保存于模型对象里。模型提供的服务必须足够 适用于不同的终端。一个模型聚集了相关的数据和操作,以提供一个详细而精确 的服务:这些被封装在操作中的抽象事物的功能被模型化。一个模型的接口提供 了访问和更新模型状态,执行封装在模型中的复杂进程的方法。模型服务被控制 器访问,用于查询或更改模型的状态。当模型状态发生变化时,模型会通报给视 图。对大多数w e b 应用程序而言,功能比界面感觉更重要。在模型同界面分离的 情况下,代码即可实现可管理性和可重用性。例如,在一个保险应用程序中,模 型就是处理计算保险费和同数据库交互的那些业务代码。模型通常也被称作业务 逻辑。 ( 2 ) v i e w :视图表示模型的状态,是应用系统的外观,当模型发生改变时, 视图也将随之改变,以维持系统数据的致性。在m v c 模式下。通常的设计前提 是界面任务较小。当然视图也应该具有一定的功能性并遵守可用性的约束,但视 图界面不应当处理数据。事实上,视图的每一部分都只能包含采集数据的逻辑, 并把采集到的数据传递给设计模式中的其他组成部分进行处理。 ( 3 ) c o n t r o l l e r :控制器是联系模型与视图之间的纽带,控制模型和视图 之间的交互过程。它获取并翻译用户输入的动作,指定执行该动作的模型,或者 根据用户的输入和执行的结果来选择下一个视图。 m v c 模式中的三要素模型一视图一控制器之间的关系以及它们之间的协作如 图2 - 3 所示。 天津大学硕士学位论文第二章i v i v c 设计模式与s t r u t s 应用框架 据娃橱 图2 - 3b i v c 模式的工作流程 由图2 - 3 可知,m v c 模式的处理流程是,首先控制器接收用户的请求,并决 定应该调用哪个模型来进行处理,然后模型调用业务逻辑来处理用户的请求并返 回数据,最后控制器用相应的视图返回数据,并通过表示层呈现给用户。 2 3 2m v c 设计模式在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 与 m v c 设计模式在w e b 应用系统开发领域达到了完美的结合。目前,这种结合己经 被广泛的应用于许多企业级w e b 应用系统的开发过程中,其中,j s p 用于创建与 用户交互的视图,j a v ab e a n ,e j b 等组件用于创建实现业务逻辑的模型,s e r v l e t 用于创建实现业务逻辑与用户交互的控制器。w e b 应用客户端的用户动作被视图 传递给s e r v l e t 集中处理,s e r v l e t 处理控制逻辑,调用b e a n s 激活业务逻辑或 修改模型状态。根据用户动作和模型处理的结果,控制器选择一个视图作为用户 请求的响应。这样,就形成了清晰的m v c 设计模式,简化了w e b 应用系统的开发。 天津大学硕士学位论文第二章m v c 设计模式与s t r u t s 应用框架 鼍压球一厂两 l 数据库l 喜 干斋,拶 i j l 客户屡业务屡 e i s 屡 图2 - 4 摹于j 2 e e 和m v c 设计模式的系统模犁 基于j 2 e e 和m v c 设计模式的系统模型如图2 - 4 所示,它借鉴了m o d e l 2 的思 想,其技术原理是:以s q ls e r v e r ,o r a c l e ,s y b a s e 等企业级数据库系统作为后 台数据库,以s e r v l e t 等高性能服务端程序作为后台总控程序,j s p 页面在前台 运行,s e r v l e t 接受用户的输入,分别调用不同的j s p 页面向浏览器反馈信息, j s p s e r v l e t 通过h t t p 连接在服务器端和浏览器端传递数据:j s p s e r v l e t 并不 使用j d b c 技术直接访问数据库系统,而是把参数传递给e j b 组件,由e j b 组件 对数据库进行操作,这样就可以封装系统的内部数据:j a v a b e a n 和e j b 组件还可 以把事务分发到其他组件中进行处理,最后把从数据库返回的结果,由 j s p s e r v l e t 发送到前端显示。 w e b 服务器是j z e e 体系结构中间层的一个重要组成部分。它在技术上主要 是s e r v l e t 和j s p ,其功能是实现用户界面的表现。由于j s p 和s e r v l e t 本质上 是服务端的j a v a 小程序,因而可以与j a v aa p p l e t 及h t m l 客户端交互,具有执 行速度快、用户界面生成灵活、安全性好等特点,同时还能使用j a v a b e a n 实现 一些简单的业务逻辑。 j 2 e e 使用e j b 服务器作为e j b 组件的部署环境,在e j b 服务器中提供了在 分布式计算中组件需要的所有服务,如组件生命周期管理、数据库连接管理、分 布式事务管理、组件命名服务、自动容错以及负载的自动均衡能力等。实现业务 逻辑的e j b 组件可以在e j b 服务器中高效运行,支持多客户端访问。h t t p 的客 户端一般先向运行在w e b 服务器上的s e r v l e t 或者j s p 发出请求,通过在j s p 中 嵌入的j a v a 代码或是s e r v l e t 来调用运行在e j b 服务器中的e j b 组件,以实现 复杂的业务逻辑。 天津大学硕士学位论文第二章b v c 设计模式与s 仃u t s 应用框架 2 4s t r u t s 框架 2 4 1s t r u t s 框架的提出 近年来,随着i n t e r n e t 技术的迅猛发展,计算机网络给人们的工作、学习 和日常生活带来很大的便利,同时开发w e b 的技术也在不断更新。j 2 e e 即是其 中一个非常有竞争力的选择。 j 2 e e 体系包括j s p ,s e r v l e t ,f j a ,w e bs e r v i c e 等多项技术。怎样充分利 用这些技术,将它们组合起来构造一个满足项目需要的稳定框架是项目开发过程 中的一个关键环节。 此环节一般主要由架构设计师完成,设计师将根据项目需求,对j 2 e e 体系 中的各处技术进行筛选取舍,并考虑到开发过程中的角色分工、后期的运行维护, 以及系统可重用性、司一扩展性等诸多因素,建立系统的框架。 一个成功的软件需要有一个成功的框架,但软件框架的建立是一个复杂而又 持续改进的过程,如果能开发出通用的框架将能大大提高缩短开发时间,减少维 护工作量。s t r u t s 就是其中一个流行的基于j 2 e e 的框架。 通过使用s t r u t s 框架,你不需要再花费大量的时间在整个应用上,你可以 集中精力编写应用程序业务逻辑和表示层代码,其它事情都交给s t r u t s 框架负 责而无需你关心。显然这将大大加速项目的开发进程,并降低了学习与开发w e b 应用的难度。 s t r u t s 最早是作为a p a c h ej a k a r t a 项目的组成部分问世运作。项目的创立 者希望通过对该项目的研究,改进和提高j a v as e r v ep a g e s ( j s p ) 。s e r v l e t 、 卷标库以及面相对象的技术水准。s t r u t s 是一个开放源代码的w e b 的应用框架, 基于m v c 设计模式,使用s e r v j e t 和j s pa p i 建立,可以用来构建复杂的w e b 应 用。它允许我们分解一个应用程序的商业逻辑、控制逻辑和表现逻辑的代码,使 它的重用性和维护性更好。 2 4 2s t r u t s 的优点 在使用j a v a 技术建立w e b 应用的实例中,由于j s p 技术的发展,很快这种 便于掌握和可实现快速开发的技术就成了创建w e b 应用的主要技术。j s p 页面中 可以非常容易地结合业务逻辑( j s p :u s e a e a n ) 、服务端脚本和h t m l ,在j s p 页面 中同时实现显示,业务逻辑和流程控制,从而可以快速地完成应用开发。现在很 多的w e b 应用就是由一组j s p 页面构成的,这种以j s p 为中心的开发模型又称之 为j s p 模式1 天津大学硕士学位论文第二章m v c 设计模式与s t r u t s 应用框架 这种开发模式可以很好的满足快速和小规模的应用开发的需要,但是不能满 足大型应用的要求,从工程化的角度考虑,它也有一些不足之处: 应用的实现一般是基于过程的,一组j s p 页面实现一个业务流程,如果要进 行改动,必须在多个地方进行修改。这样非常不利于应用扩展和更新。 由于应用不是建立在模块上的,业务逻辑和表示逻辑混合在j s p 页面中,页 面被嵌入大量的s c r i p t 或j a v a 代码,非常不利于系统的重用和改动。 为了解决这些问题,在开发大型的w e b 应用时我们可以采用j s p 模式2 ,一 个基于m v c 模式的框架。1 0 c 是m o d e l - v i e w - c o n t r o l l e r 的缩写,m o d e l 代表的 是应用的业务逻辑( 通过j a v a b e a n ) e j b 组件实现) ,v i e w 是应用的表示层( 由j s p 页面实现) ,c o n t r o l l e r 提供应用的处理程控( 一般由一个s e r v l e t 实现) ,通过 这种设计模型把应用逻辑,处理过程和显示逻辑分开由不同的组件实现。这些组 件可以进行交互和重用,从而弥补了j s p 模式1 的不足。 一 j s p 模式2 独有的优点使其更易于实现对大规模系统的开发和管理,但是开 发m v c 系统比简单的j s p 开发要复杂许多,原来通过建立一个简单的j s p 页面就 能实现应用现在变成了多个步骤的设计和实现过程,因此需要更多的时间学习和 掌握。采用m v c 实现w e b 应用时,选一个现成的m v c 框架,在此之下进行开发, 就能取得事半功倍的效果。现在有很多可供使用的m v c 框架,由于s t r u t s 有完 整的文档并且相对来讲比较简单,所以用它开发m v c 系统还是比较方便的。 2 5s t r u t s 体系结构 s t r u t s 由一组相互协作的类( 组件) 、s e r v l e t 以及j s p 卷标库组成。基于 s t r u t s 架构的w e b 应用程序基本上符合j s p 模式2 的设计标准,可以说是m v c 设计模式的一种实现。 s t r u t s 有其自己的控制器( ( c o n t r o ll e r ) ,同时整合了其它的一些技术去实 现模型层( m o d e l ) 和视图层( v i e w ) 。在模型层,s t r u t s 可以很容易的与数据访问 技术相结合,包括e j b ,j d b c 等。在视图层,s t r u t s 能够与j s p ,x s l 等等这些 表示层组件相结合。 2 5 1s t r u t s 与w e b 应用的关系 既然s t r u t s 叫做w e bf r a m e w o r k ,那么它肯定主要基于w e b 层进行应用系 统开发。按照j z e e 架构的标准,s t r u t s 应当和j s p s e r v l e t 一样,存在于w e b c o n t a i n 一层。 天津大学硕士学位论文第二章m v c 设计模式与s t r u t s 应用框架 2 5 2s t r u t s 的体系结构 s t r u t s 框架是m v c 的实现,下面就分别从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 的体系结构。图2 - 5 显示了s t r u t sf r a m e w o r k 的体系结构在响应客户 请求的时候,各个部分的工作原理: r 娜。嗽 图2 5s t r u t s 体系结构 视图( v i e w ) 组件 s t r u t s 应用中的v i e w 部分是通过j s p 技术实现的。j a v a 开发者很容易在 j s p 当中过度使用j a v a 小程序,直接嵌入条件业务逻辑和循环。m v c 解决了这一 问题,通过把复杂的处理分离到m o d e l 和c o n t r o l l e r 组件中,从而使j s p 本身 更小,这显然大大简化并加速了开发、测试及维护的工作。s t r u t s 更深入的发 展了这个方法,除了提供m v c 构架以外还提供了一整套自定义的j s p 标记,通过 这坠自定义标记可以非常好的和系统的m o d e l 部分交互,通过使用这些自定义标 记创建的j s p 窗体,可以实现和m o d e l 部分中的a c t i o n f o r m 的映像,完成对用 户数据的封装。 模型( m o d e l ) 组件 m v c 系统中的m o d e l 部分从概念上可以分为两类一系统的内部状态和改变系 统状态的动作。s t r u t s 通常使用一组j a v a b e a n 表示系统的内部状态,根据系统 的复杂度也可以使用像e n t i t ye t b 和s e s s i o ne j b 等组件来实现系统状态。 s t r u t s 为m o d e l 部分提供了a c t i o n 和a c t i o n f o r m 对象:所有的a c t i o n 处理器 对象都是开发者从s t r u t s 的a c t i o n 类派生的子类。a c t i o n 处理器对象封装了 具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的v i e w 组件以产 生响应。s t r u t s 提供的a c t i o n f o m 组件对象,它可以通过定义属性描述客户端窗体数 据。开发者可以从它派生子类对象,利用它和s t r u t s 提供的自定义标记库结合可以实现对 客户端的窗体数据的良好封装和支持,a c t i o n 处理器对象可以直接对它进行读写,而不再 天津大学硕士学位论文第二章m v c 设计模式与s t r u t s 应用框架 需要和r e q u e s tr e s p o n s e 对象进行数据交互。通过a c t i o n f o r s 组件对象实现了对vi e w 和m o d e l 之间交互的支持s t r u t s 在实现时把做什么( a c t i o n ) 和如何做( 业务逻辑) 分离, 这样可以实现业务逻辑的重用。 控制器( c o n t r o l l e r ) 组件 控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后 把响应结果送回到客户端。在s t r u t s 中c o n t r o l l e r 功能由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 对象构成:核心是一个s c r v l e t 类型的对象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 包括一组基于配置文件生成的a c t i o n m a p p i n g 对象,每个 a c t i o n m a p p i n g 对象实现了一个请求到一个具体的m o d e l 部分中a c t i o n 处理器 对象之间的映像。 s t r u t s 框架的处理流程清楚的体现了m v c 系统的特点,s t r u t sc o n t r o l l e r 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 f o r m 中的数据,处理 和响应客户请求,它还调用后台的b e a n 组件,这些组件封装了具体的业务逻辑。 a c t i o n 处理器对象根据处理结果通知c o n t r o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 岳飞满江红诵读课件
- 年产11.6万台精密露点仪项目可行性研究报告
- 奔驰卡钳知识培训课件
- 离婚协议书中2025年度股票资产清算及分割方案
- 二零二五年度特种船舶船员聘用及安全协议
- 二零二五年度办公室房屋转租及企业培训服务合同
- 二零二五年度企业信息化建设合理化建议书合同
- 2025版船员培训与考核服务合同规范范本
- 2025版瓦工装修一体化服务合同范本
- 二零二五年度仓储物流短期租赁协议书
- 枣庄学院《图学基础与计算机绘图》2024-2025学年第一学期期末试卷
- GB 46031-2025可燃粉尘工艺系统防爆技术规范
- 养老护理员培训班课件
- 2025-2030城市矿产开发利用政策支持与商业模式创新报告
- 产品线库存管理与补货预测系统
- 2025年高考(山东卷)历史真题及答案
- 医学减重管理体系
- 咯血与呕血的护理
- 初中历史教师培训讲座
- 2025年新营运损失费赔偿协议书
- 手术部运用PDCA循环提高手术室术后设备器材定位归还率品管圈
评论
0/150
提交评论