




已阅读5页,还剩66页未读, 继续免费阅读
(信号与信息处理专业论文)基于strutshibernatespring框架的web应用与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着w e b 技术的迅猛发展,基于j a v a 的网络技术应用及w e b 2 0 技术得到了 广泛的传撩。安全,快捷,稳定於w e b 成用更热受到用户的亲潦。如何开发满 足用户需求的应用成为程序设计人员必须认真思考的问题。在各大开源组织和 门户霹站的不颟努力下,各种优秀的w e b 应耀框架应运丽生了。磊s t r u t s , h i b e r n a t e 翻s p r i n g 便是其中的佼佼者。s t r u t s 鏊在改善用户体验,提供囊好的髑 户操作界面,处理系统前台操作。h i b e r n a t e 作为后台持久层,与数据库进行读 取和存入操作,窕成数据的交互。褥s p r i n g 则成为联系酶螽业务糯后台逻辑赡 纽带,完成数据从前台到后台,再返回到前台的控制型操作。这样三者就有机 的结合起来,各嗣其职又互相联系,统一黼又快速的完成系统开发。 本课题基在研究三大框架的工作原理和捺囊性,对各爨麴功能研究进行了 详细的分析。根据所做的研究进行了系统总体设计,框架选择与整合,编码实 现到工程发靠。从丽实现了在线文件管理系统酶牙发。 本文首先对设计模式进行分析,从而得到m v c 架构的优点,对作为v i e w 的s t r u t s 进行了深入研究,详述其如何作为前台而工作。然后对于作为后台m o d e l 实体的h i b e r n a t e 进行了研究,分毒嚣其如何羯数据库字段绑定达到数据交互的鳗 的。最后对重要的c o n t r o l l e r 即s p r i n g 以及框架间如何整合作了详细的研究。按 照系统分屡开发原理,将j 2 嚣琶静三大开源框架根据功能屡次分工进行整合,形 成高效易用的s s h 框架。便于本文的应用系统的开发。通过框架的使用,降低 了代码的耦合性,减少开发周期,达到快速,高效的开发,从而为程序开发者 提供了便利。 在线文件管理系统刹用基予b s 架构的框架技术进行了开发。其融的一是 炎了实现本文胬徽的研究,二是为了减轻用户在处理大量文件时所承受鲍负掇, 用户通过该系统可以方便有效地管理文件,消息和备忘录,轻松地面对茈类文 件和信息管理的工作。 关键词:设计模式,耦合,s t r u t s ,h i b e m a t e ,s p r i n g ,框架憋合 a b s t r a c t a s w e b t e c h n o l o g y i s d e v e l o p i n gr a p i d l y ,t h ea p p l i c a t i o n s o fi n t e r n e t t e c h n o l o g ya n dw e b 2 0t e c h n o l o g yb a s e do nj a v aa r es p r e a d e dw i d e l y u s e r sp a y l 魏o f ea t t e n t i o nt os a f e ,s w i f ta n ds t a b l ew e ba p p l i c a t i o n s s oh o wt od e v e l o p a p p l i c a t i o n st om e e tu s e r sd e m a n di s ap r o b l e mt h a td e v e l o p e rm u s tt h i n ka b o u t s e r i o u s l y b yt h eg r e a te f f o r to fs o m eb i go p e ns o u r c eo r g a n i z a t i o n sa n dp o r t a l s ,s o m e e x c e l l e n tf r a m e w o r k sc o m ea b o u t 。s t r u t s ,h i b e r n a t e ,s p r i n ga r et h et o po ft h e m s t r u t si sd e s i g n e dt oi m p r o v eu s e r se x p e r i e n c e sa n do f f e rt h eb e s tu s e ri n t e r f a c et h e n h a n d l et h ef o r e g r o u n do p e r a t i o n s 。h i b e r n a t et a k e sr e s p o n s i b i l i t yt or e a df r o ma n d w r i t ei n t od a t a b a s ea sb a c k g r o u n dp e r s i s t a n c e a n dc o m p l e t ei n t e r a c t i o no fd a t a s p r i n g b e c o m e s c o n n e c t i o nb e t w e e nf o r e g r o u n db u s i n e s s a n db a c k g r o u n d l o g i c ,c o m p l e t ec o n t r o l l i n go p e r a t i o n s t h a tr e c e i v ed a t ac o m i n gf r o mf o r e g r o u n dt h e n r e t u r nt h e mt of o r e g r o u n d s ot h et h r e eo ft h e ma l ec o m b i n e dc o m p a c t l y , a n dc o n n e c tw i t he a c ho t h e r s t h a ti sc o n v e n i e n tf o ra p p l i c a t i o n sd e v e l o p i n g t h ea r t i c l ei sw r i t t e nt or e s e a r c hw o r k i n gp r i n c i p l ea n dc o l l a b o r a t i o no ft h r e e f h m e 、) l ,o f k s ,d i s c u s st h e i ro w nf u n c t i o nd e t a i l e d l y a c c o r d i n gt ot h er e s e a r c h ,t h e p a p e rd ot h ew o r ka b o u tw h o l ed e s i g na b o u ts y s t e m ,c h o i c ea n dc o m b i n a t i o na b o u t f r a m e w o r k s ,c o d ei m p l e m e n ta n dr e l e a s e 。t h e nt h ep a p e ri m p l e m e n t st h eo n l i n ef i l e m a n a g e m e n ts y s t e m t h ep a p e rf i r s t l yd i s c u s st h ed e s i g nm o d e ,g e lt h ea d v a n t a g e sa b o u tm v c m o d e l a n dd i s c u s ss t r u t sa b o u th o wi tw o r k sf o rf o r e g r o u n da sv i e w t h e nr e s e a r c ht h e b a c k g r o u n dm o d e lm o c k u ph i b e r n a t ea b o u th o wi t a c h i e v e si n t e r a c t i o na i mw i t h d a t a b a s eb yf i e l db i n d i n g 。f i n a l l yd e s c r i b et h ef u n c t i o no fc o n t r o l l e rs p r i n g ,i tp l a y s a ni m p o r t a n tp a r ti nf r a m e w o r kc o n n e c t i o n t h ep a p e rc o m b i n e st h e t h r e ej 2 e e f r a m e w o r k sa c c o r d i n gt ot h e i rd i f f e r e n tf u n c t i o nr o l e s t ob eac o n v e n i e n ts s h f r a m e w o r k a n di ti sg o o dw o r kf o rt h es y s t e mi nt h i sa r t i c l e a c c o r d i n gt ot h eu s eo f f r a m e w o r k ,i tb e c o m e sc o n v e n i e n tf o rd e v e l o p e rt or e d u c ec o d ec o u p l i n ga n dc y c l e , i l a n dt oi n c r e a s ee f f i c i e n c y t h eo n l i n ef i l em a n a g e m e n ts y s t e mi sd e v e l o p e db a s e do nf r a m e w o r ko fb s 棚h i t e c t u r e i t sf i r s ta i mi st oi m p l e m e n tw h a tt h ep a p e rr e s e a r c h ,a n dt h e s e c o n da i m i st oh e l p 珏s e fr e d u c eb u r d e nw h e nd e a lw i t hp l e n t yo ff i l e s 。u s e r c a l lb em o r e e f f i c i e n tt om a n a g ef i l e s ,m e s s a g e sa n dn o t e sb yu s i n gt h i ss y s t e m a n dt h eu s e rc a n b e m 稻娃商l et od e a lw i t ht h e s ew o r k ss u c ha sf i l ea n d i n f o r m a t i o nm a n a g e m e n t k e y w o r d s :d e s i g n m o d e ,c o u p l i n g , s t r u t s ,h i b e r n a t e ,s p r i n g , 辩锄e w o 瘟 i n t e g r a t i o n i i i 独创性声明 本夫声甓,毵璺交熬瓷文是本人在荨鄹措导下进行魏骚究工箨及取得的礤 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 镳入基玺发表蓑撰驾过嚣辑究壤票,遣不毽含意获褥武汉蘧王大学或其它教育 机构的学位或证书而使用过的材料。与我一嘲工作的同志对本研究所做的任何 贡献驽己在论文串撵了囊确鹣说葫并表示了澍意。 关于论文使用授权的说明 期:0 蓬:! 薹:! f 本人竞全了察武汉瑾工大学有关傈餐、後耀学使论文篓攥定,帮学校有权 保幽、送交论文的艇印件,允许论文被查阅和借阅;学校可以公布论文的全部 戴部分悫窑,霹黻慕惩彩窝、缩露或其毽复翻手段擦存论文。 ( 保密的论文在解密后成遵守此舰定) 武汉理l :大学硕毕韭论文 第l 章绪论 1 1 本课题的研究背景 圜酶很多应用系统是建立在w e b 基础上,基于剐s 结构的w e b 应用程序也 成为i n t e r a c t 上使用最为广泛的应用开发技术。而j 2 e e 平台的成熟,为w e b 应 用程序更进一步的发展提供了更广阔的空间。 j 2 e e 多层架构自推出以来,逐渐得到了广泛的应用,形成了一个面向企业级 的分布式、多层次的软件体系结构规范,成为企业应用开发的标准。j 2 e e 的核 心思想有两个:一个是分层的思想,另一个是构件的思想。软件分层有利于软 件开发的分工,使大型系统中所需的技术相互隔离。j 2 e e 的每一层又定义了相 应的构件开发规范,通过构件来实现层的功能,构件技术的应用大大地提高了 软件的可重用性。 在多层j 2 e e 体系结构的设计中,普遍存在着程序可重用程度低、维护工作 繁琐、应交熊力较弱等不足。同时,多层w c b 应斓软件需要面对复杂的网络环 境、多样化的用户需求、灵活的业务模式、复杂的业务流程、众多的组织机构 及层次、角色分工等问题,在业务和技术上也是复杂多变的。因此,在基于组 件的j 2 e e 平台充分内置了灵活的情况下,如何组织应用程序以实现简单高效的 应用程序升级、维护和扩展,以及如何让不懂程序代码的人员避开程序数据, 成为开发中首先要解决的问题。而且,还要充分考虑到多层结构的特殊性,各 层之闯需要密切配合才能完成最终功能,又要在实际开发中尽霹能的使各层的 开发相对独立,减少各层之问的耦合程度,避免开发人员相互制约。采用框架 构件技术贝| j 是解决上述弊端的一个有效方案。 框架是为其他平台提供各种接口和功能服务的基础构件,扮演着至关重要的 角色,起着关键的作用,是产品的中流砥柱;框架是采用j 2 e e 技术的应用服务 器、完全面向对象的j 怂,a 语言开发的多层体系结构的应用系统。 s t r u t s + s p r i n g + h i b e r n a t e 是适用于大型w e b 应用开发的架构技术,比之传统 的m v c 模式,其优点是最大限度的降低系统各部分之间的耦合性,增强系统的 可扩展性与可维护性,提高代码重用率。s t r u t s 是一个m v c 模式的框架,它将 武汉理- i 大学硕士毕业论文 业务代码与视图代码分离,有效地优化了系统结构,提高了系统的扩展性,降 低系统复杂度与维护难度。h i b e r n a t e 是一个对象关系数据库映射工具,通过 h i b e r n a t e 的使用,能够很好地解决面向对象编程语言与关系数据库一起使用可 能带来的种种麻烦,使得程序设计人员可以减少对关系数据模型的依赖,致力 予业务逻辑的开发。s p r i n g 框架的使用将j 2 e e 层次结构中的业务层分离为业务 逻辑层和数据持久层,这样业务逻辑便交给s p r i n g 处理,而数据访问则交给 h i b e r n a t e 处理,使得层次结构更加清晰,便予系统的维护和扩震。 1 2 目前国内外研究现状 随着移动网络的快速发展,移动溺络从2 5 g 到3 g 的推进,网络所支持的 移动数据速率的快速提升,些面向移动商务领域发展的趋势同益明显。越来 越多的消费者喜欢上了网上购物,增值的s m s 业务大受欢迎,两且越来越多的 预付费充值购买可以通过移动电话进行。移动商务成为现在和今后移动应用的 重要内容。男方面,随着计算枫技术的普及和网络技术的飞速发展,世界进 入了前所未有的信息化时代,为企业的发展提供了种种机遇和更广阔的发展空 间,将企业卷入信息化的大潮中来,企业信息化是企业现代化管理的标志,是 企业快速响应市场变化的必备条件,如今企业大多采用各种不同的w e b 应用程 序来提高自身的管理能力。 为了应对由于市场信息变化的需求,企业对w e b 应用程序的可扩展性要求 越来越高,因此对传统的w e b 应用技术提出了技术挑战。传统的w e b 应用开发 将页面显示、业务逻辑和数据处理都集中在页面代码中,导致废用程序的藕合 性很强,从而引起w e b 应用的扩展和维护极其困难,同时也不利于开发人员分 工协作。传统的w e b 应用开发在大型的企业级应用中愈加显的力不从心。随着 j 2 e e 平台的出现,基于b s 的多层w e b 体系结构逐渐发展成熟起来,多层w e b 应用的开发己成为主流。但是,在多层w e b 体系结构的设计中,普遍存在程序 可重用程度低、维护工作繁琐、应变能力较弱等不足;同时,多层w e b 应用软件 需要面对复杂的网络环境、多样讫的用户需求、灵活的业务模式、复杂的业务 流程、众多的组织机构及层次、角色分工等问题,在业务和技术上也是复杂多 变的降。因此,如何组织应用程序以实现篱单高效的应用程序升级、维护和扩 展,是当前w e b 技术发展的热点之一。 2 武汉理工大学硕士毕业论文 为了降低成本、加快应用程序的开发和设计。依据j 2 e e 平台提供的基于组 件的方法,人们要徽的就是如何组装这些组件使之成为个具有 枣缩性、可维 护性、可扩展性、可重用性和易管理性的易于开发的软件体系结构。 s t r u t s 最初是亩c r a i gr m c c l a n a h a n 创建的,在2 0 0 0 年用于a p a c h es o f t w a r e f o u n d a t i o n 的j a k a r t a 项目。2 0 0 1 年6 月,s t r u t s l 0 发靠。从那以后,许多人在 原代码和文档方面都对该项目做出过贡献,s t r u t s 得到了迅速的发展。如今,s t r u t s 己成为构建j a v a w e b 应用程序的实际标准,并且已经成为j a v a 体系的一部分。 但是它唯一不足之处就是配置文件相对较多,操作起来不是很方便。刚刚接触 s t r u t s 的程序员不容易掌握。 数据库操作在w e b 应用中具有相当重要的地位,可以说,所以的w e b 应用 都离不开数据库。目前,关系数据库占据着市场的主导地位,不利于面向对象 的编程思想的发挥,如何使利用亟向对象的思想操作关系数据库也是当今的w e b 应用技术发展的热点之一。 以前的使用j d b c 编程来访问数据库,虽然运行效率高,但是在j a v a 程序 代码中嵌入大量的s q l 语句,使得项目难以维护。现在,越来越多的j a v a 开发 人员把h i b e r n a t e 作为企业应用和关系数据库之间的中间件。h i b e r n a t e 是对象, 关系映射( o b j e c t 承e l a t i o nm a p p i n g ) 的解决方案,篱写为o r m ,简单地鹾就是将 j a v a 中的对象与对象关系映射至关系数据库中的表格与表格之间的关系, h i b e r n a t e 提供了这个过程中蠢动对应转换的方案间。从而使程序员可以方便的 使用面向对象的思想操作关系数据库。这为程序员的访问数据库操作变的非常 便捷。 s p r i n g 属于轻量级的企业框架,其最重要的技术就是面向方面的程序设计和 反转控制,反转控制作用就是减小程序代码的耦合度。s p r i n g 负责程序的业务控 制,将表t e 层( s t r u t s ) 和持久层( h i b e r n a t e ) 联系起来。 1 3 本文研究的主要内容和组织结构 1 3 1 本文研究的主要内容 ( 1 ) 本文介绍了j a v aw e b 开发的经典设计模式以及流行的框架的技术特点 和实现方法。 3 武汉理= 大学硕士毕业论文 ( 2 ) 深入探讨s t r u t s 、h i b e r n a t e 和s p r i n g 框架架构及配置使用,并详细分析 了各框架的技术特点。 ( 3 ) 整合s t r u t s 、h i b e r n a t e 和s p r i n g 框架,完成基于b s 架构的w e b 信息 系统。 1 3 2 论文的组织结构 第1 牵介绍研究背景和动态,从软件复用的发展历程和不同阶段来说明研 究目的和意义,同时简要介绍了本文的工作内容和和组织结构。 第2 章分析比较主要设计模式,同时对典型设计模式举例说明其设计的先 进性。接着阐述框架的概念和范围,引入应用框架的定义。然后对表现层框架 s t r u t s 进行详细介绍,讨论了其基本特征和设计原则,并详述了其技术特点和优 势。 第3 章主要讲述了持基层框架h i b e r n a t e 的的技术特点及应用,以及其对数 据库访问的实现方式。 第4 章深入分析了控翩层s p r i n g 出现的背景,分析了它的技术特点,它在 各层中所起的作用,最后分别对s t r u t s 与s p r i n g 的整合,h i b e r n a t e 与s p r i n g 的 整合做了深入的研究。 第5 章以在线文件管理系统的总体架构背景下,通过应用s t r u t s 作为表示层 实现,应用h i b e r n a t e 作为持久层实现,并结合最新的s p r i n g 技术作为业务层实 现,进行框架整合,扶丽设计出了一套足够灵活、松敖耦合、可扩展且离效的 w e b 开发框架。 第6 章结论对全文进行总结,并提出未来研究的发展方向和有待进一步研 究的问题。 4 武汉理工大学硕十毕业论文 第2 章设计模式与s t r u t s 框架 软件系统的设计不仅应对当前处理的问题有针对性,还要对将来的问题和 需求也有足够的通用性。一个软件系统能否适应业务的发展和需求的变化是决 定其生命力的关键因素。为此,在软件复用领域,提出了设计模式和框架的概 念。 2 。l 设计模式 设计模式是对面向对象设计中反复出现的闷题的解决方案。这个术语是在 十九世纪九十年代由e r i c hg a m m a 等人从建筑设计领域引入到计算机科学中来 的。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨 论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计 者掌握。 2 1 。1 设计模式描述 在讨论模式之前,必须以适当的形式描述模式。好的描述有助于使用者立 即抓住模式的本质,即模式关心的问题是什么以及提出的解决方案是什么。好 的模式描述还提供实现个模式的必要细节,并考虑它的应用效果。 设计模式是设计经验积累的产物,为设计者们交流讨论、书写文档以及探 索各种不同设计提供了一套交流的工具。可是如果没有良好的描述方法就无法 推广和交流。一个关键问题就是如何对设计模式进行概括、精确、完整的描述。 传统的设计模式描述有自然语言叙述、程序设计语言实现的具体样本等方法。 近年来,随着对设计模式研究的逐步深入,国际上陆续出现了一些形式化的模 式规范描述方法。这些方法可以分成两类,一类是图示化方法,如流行的u m l , 另一类方法是形式化的数学表示,如c 语言等。这类方法对精确的规范提供了 有力的理论基础,但由于其表示方法的抽象性,在实际应用中很难被一般的设 计人员所接受,所以还只是处于研究阶段。图形符号虽然很重要也很有用,却 还远远不够,它们只是将设计过程的结果简单记录为类和对象之问的关系。为 5 藏汉臻l :大学硕士毕蹙论文 了达到设计复用,必须同时记录设计所产生的决定过程、选择过程翻权衡过程。 文献提出了模式的四个要素:模式名称、问题、解决方案、效果。可以将设计 模式按一定的格式描述,定义统一信息结构模板,至少需要包含以下四个要素 的撼述和说明。 ( 1 ) 模式名称( p a t t e r nn a m e ) :每个模式独一无二的名字,用来区分不同 p a t t e r n 的模式,也便于挑选设计模式。 ( 2 ) 闯题( p r o b e l m ) :模式视图解决的问题,解释在何时、何种情况下使用 这一模式。 ( 3 ) 解决方案( s o l u t i o n ) :对于场景中出现的阀题,如何提供一个解决方案, 但并不提供一个具体的设计和实现。 ( 4 ) 效果( c o n s e q u e n c e s ) :使用模式的效果,评价模式使用的好处和优势。 2 1 2 设计模式分类 设计模式描述了问题、解决方案、在什么条件下使用该方案及其效果,它 还给出了实现要点和实例。该解决方案是解决该阀题的一组精心安排的通用的 类和对象,再经定制和实现就可用来解决特定上下文中的问题。它使得系统分 析和设计人员积累的优秀设计思想和丰富的设计经验可以保存下来,可以供入 学习,从丽使得原柬看上去既深奥又抽象的设计也可褥到最大程度的复用。由 于存在众多的设计模式,在粒度和抽象层次上各不相同。如果能用一种方式将 它们组织起来分类以便于对各种相关的模式进行引用,这有助于更快地学习目 录中的模式,且对发现新的模式也有指导作用。j a v a 设计模式的分类见表2 1 。 6 武汉理i :人学硕士毕业论文 表2 一lj a v a 设计模式的分类 设计模式组成 d a p t e r ( 适配器) f a c a d e ( 夕b 观) 接口型模式 c o 糙筘s 沁缀合) b r i d g e ( 桥接) s i n g l e t o n ( 单例) o b s e r v e r ( 观察者) m e d i a t o r ( 中介者) p r o x y ( 代理) 责经颦模式 c h a i no fr e s p o n s i b i l i t y ( 责任链) f l y w e i g h t ( 享元) b l | 湘e f ( 生成器) f a c t o r ym e t h o d ( 1 _ 厂) 构造型模式 a b s t r a c tf a c t o r y ( 抽象上厂) p r o t o t y p e ( 原型) m e m e n t o ( 各忘录) t e m p l a t em e t h o d ( 模袄) s t a t e ( 状态) 操作掣模式 s t r a t e g y ( 策略) c o m m a n d ( 命令) i n t e r p r e t e r ( 解释器) d e c o r a t o r ( 装饰器) i t e r a t o r ( :i 塞代器) 扩展型模式 1 v i s i t o r ( 访闽者) 在j a v aw e b 开发中,m v c 就是一种很经典鼠很流行的设计模式。其中 m ,v ,c 指的是m o d e l ( 模型) ,v i e w ( 视图) 和c o n t r o l ( 控制) 。 2 1 3 模式语言 自从设计模式j 下式提出,越来越多的模式被发现并编制成册。但是这些模 式大多数还是以文本的方式组织,这给使阁者在针对菜个问题挑选相应模式时 带来很大的困难。一个模式的集合形成理解和交流思想的词汇表。如果将这样 一个集合巧妙的结合在一起丽形成一个整体,这个整体显示了为实现一个共同 圜标的各要素成分之间的继承层次相关系,这就是模式语模式尽录出许多针对 不同问题的解决方案的集合组成,同样模式语言是由一组相关的、针对大型设 计问题的模式集合组成的。或者说各类设计模式组成了设计模式瑟录,领域相 关的设计模式在一起组成了模式语言。 模式语言必须覆盖整个领域问题而不仅仅是单个模式或模式目录所针对的 有限翔题,并且可以通过“按部就班”来实现一个设计,使设计成为个确定的和 可重复的过程。考虑到人们建造的软件系统的多样性,很难给出一个完备的模 式集合来指导人们一步步地设计出完整的应用。尽管对于某些特定类型的应用 可以做到这一点,但要形成一个完备的软件模式语言还是不可想象的。可是可 以使模式系统更加完整更加丰富,比如加入用户界面模式、分析模式、体系结 7 武汉理工大学硕士毕业论文 构模式,同时在使用模式时尽可能提供确定的方法和步骤,通过框架来加强模 式的复用程度和使用效果。 2 2 应用框架 近些年计算机的运算速度和网络带宽飞速增长,可是大型软件的设计和开 发依然是错综复杂并且代价昂贵。很多精力和花费都消耗在整个行业一些功能 重复的软件开发上。特别是随着硬件架构、操作系统、通信平台的多样性使得 从头建立一个正确的、可移植、高效的应用系统越来越复杂。 近些年框架技术曩益受到人们的重视,因为框架技术能最大限度地发挥复 用的技术且不失面向对象技术的灵活性,并且已经在很多大型软件上使用。 2 2 1 框架定义 框架是个应用软件系统的部分或整体的可重用设计,具体表现为一组抽 象类以及其实例之间的相互作厢方式。框架是能幽开发入员根据需要定制的应 用程序的轮廓。从构件的焦度看,一个框架由一组协作构件组成。很多领域的 开发人员已成功地开发了不少应用框架或使用框架技术的系统。比如微软基础 类库m f c ( m i c r o s o f tf o u n d a t i o nc l a s s e s ) ,分布式组件模型d c o m ( d i s t r i b u t e d c o m m o no no b j e c tm o d e l ) ,公共对象请求代理体系结构c o r b a ( c o m m o no b j e c t r e q u e s tb r o k e ra r c h i t e c t u r e ) ,以及用于j a v a 的远程方法调用r m l ( r e m o t e m e t h o di n v o c a t i o n ) 等。这些框架按它们在软件开发过程中的地位又分为应用框 架、支撑框架和基础框架。应用框架是面向应用领域中应用系统的骨架;支撑 框架不是应用系统的骨架,而是框架的支撑部分;基础框架不是应用系统的骨 架,而是应用系统共同使用的公共框架,如公共对象请求代理体系结构和企业 版j a v a 2 平台等。应用框架是个可复用的半完成的应用,以通过定铡来产生 应用程序或系统。它强调的是软件的设计重用和系统的可扩充性,以缩短大型 应用软件系统的开发周期并提高开发。和早期的基于类库的面向对象技术相比, 它更注重具体业务范围和领域。应用框架具有领域相关性,构件根据框架进行 复合而生成可运的系统。框架的粒度越大,其中包含的领域知识就更加完整。 8 武淡理t 大学顼士毕戴论文 2 2 2 框架特征和设计原则 根据以上对框架的研究和与设计模式的对比可以发现其在软件开发中特殊 地位,可以归纳框架的特征如下。 f 董模块化:通过将不稳定熬实现缨节封装予稳定的接嗣后西,框架加强了 模块傀。框架将软彳譬开发的全过程融于一体,使得大量的技术缁节和工幸嚣实现 了模块化,这种局部化可以减少理解和维护软件带来的工作量口。 ( 2 ) 可复用性:框架定义的稳定的接口有助于组件的产生和设计,这些组件 可鼓复用于别的系统,框架组件的复用可以大规模地提高软件的开发生产率、 软 牛糜量、软佟可靠性和协网性。两且框架描述了该领域蠹的知识和以前牙发 者的宝贵经验,这样就不需要对该领域内的核心需求迸彳亍重复理解,并且提高 了核心设计的质量。 ( 3 ) 可扩展性:由于框架是架构在成熟的应用领域之上,并且在框架的设计 和开发过程中大量使用了便予复爝和扩展的接溺设计,使德框架的可扩震性大 大增强。同时它还提供外在的钩子方法,供外在应用程序扩展其接西,加入新 的服务纛特性。 ( 4 ) 反向控制:框架是一种运行时体系结构,这种结构称之为反向控制。与 设计模式串“好莱坞原则”有柜弱作用,鬻框架通过这些事件管理对象熬缳织, 形成觏范的程序流程。当某个事件发生时,就会唤醒某个事务管理对象的钩子 方法,接着框架的反应派遣机制就会反应。当外部事彳孛发生时,国内部的核心 框架来决定哪些方法将被唤醒以处理该事件。 2 3s t r u t s 框架介绍 s t r u t s 律兹个开放源代码的应用框架,在最近凡年得到了飞速的发展, 在j s pw e b 应用开发中应用得非常广泛,它已经成为j s pw e b 应用框架的事实 上的标准隧刳。那么,究竟什么怒s t r u t s ? 要回答这个阆题还得从j s pw e b 应用 的两种基本的结构模式: j s pm o d e l1 翻j s pm o d e l2 说起。 2 3 1j s pm o d e l l 和j s pm o d e l 2 尽管m v c 设计模式很早就出现了,但在w e b 应用的开发中弓l 入m v c 却 譬 武汉理工大学硕十毕业论文 是步履维艰。主要原因是在早期的w e b 应用的开发中,程序语言和h t m l 的分 离一点难以实现。例如在j s p 网页中执行业务逻辑的程序代码和h t m l 表示层 数据混杂在一起,因而很难分离出单独的业务模型。这使得维护j s p 网页非常 困难,很难满足用户的变化性需求l 。 在早期的j a v aw e b 应用中,j s p 文件负责业务逻辑、控制网页流糕并创建 h t m l 铘,参见图2 ,1 。 图2 1j s p 作为自主独立的模块 j s p 文件是一个独立的、自主完成所有任务的模块,这给、w e b 开发带来一 系列闯题: ( 1 ) h t m l 代码和j a v a 程序强耦合在一起:j s p 文件的编写者必须既是网页 设计者又是j a v a 开发者。但实际情况是,多数w e b 开发人员要么只精通网页设 计,能够设计出漂亮的网页外观,但是编写的j a v a 代码很糟糕;要么仅熟悉j a v a 编程,能够编写健壮的j a v a 代码,但是设计的网页外观很难看。皆备两种才能 的开发人员缀少见。 ( 2 ) 内嵌的流程逻辑:要理解应用程序的整个流程,必须浏览所有网页,试 想一下拥有1 0 0 个嗣页的网站的错综复杂的逻辑。 ( 3 ) 调试困难:除了很糟的外观之外,h t m l 标记、j a v a 代码和j a v a s c t i p t 代码都集中在一个网页中,使调试变得相当困难。 ( 4 ) 强耦合:更改业务逻辑或数据可能牵涉相关的多个网页。 ( 5 ) 美学:设想有1 0 0 0 行代码的网页,其编码样式看起来杂乱无章。即使有 彩色语法显示,阅读和理解这些代码仍然比较困难。 为了解决以上问题,s u n 公司先后制定了两种规范,称为j s pm o d e ll 和j s p m o d e l 2 。虽然m o d e l l 在一定程度上实现了m v c ,但是它的运用并不理想,直 到基于j 2 e e 的j s pm o d e l 2 问世爿得以改观。j s pm o d e l2 用j s p 技术实现视图 的功能:用s e r v l e t 技术实现控制器的功能,用j a v a b e a n 技术实现模型的功能。 j s pm o d e l1 和j s pm o d e l2 的本质区别在于处理用户请求的位置不同。 在m o d e l1 体系中,如图2 2 所示,j s p 页面负责响应用户请求并将处理结 1 0 武汉理人学硕士毕业论文 果返回给用户。j s p 既要负责业务流程控制,又要负责提供表示屡数据,同时充 当视图和控制器,未能实现这两个模块之间的独立和分离。尽管m o d e l1 体系十 分适合简单应用的需要,它却不适合开发复杂的大型应用程序。不加选择地随 意运用m o d e l l ,会导致j s p 页内嵌入大量的j a v a 代码。尽管这对于j a v a 程序员 来说可能不是什么大问题,但如果j s p 页面是由网页设计人员开发并维护的, 这就导致了程序逻辑开发与页面设计纠缠在一起,既不便于分工合作也不利于 代码的重用。这样的程序其健壮性和可伸缩性都不好。从根本上讲,将导致角 色定义不清和职责分配不明,给项瞬管理带来很多麻烦。 图2 2j s pm o d e l l 为了克服m o d e l1 的缺陷,人们引入了m o d e l2 ,如图2 3 所示,j s pm o d e l2 体系结构是一种联合使用j s p 与s e r v l e t 来提供动态内容服务的方法。它吸取了 j s p 和s e r v l e t 两种技术各自的突出优点,用j s p 生成表示层的内容,让s e r v l e t 完成深层次的处理任务。在这里,s e r v l e t 充当控制器的角色,负责处理用户请 求,创建j s p 页需要使用的j a v a b e a n 对象,根据用户请求选择合适的j s p 页返 回给用户。在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 中提取动态内容插入到静态模板1 5 l 。这是一种有突破 性的软件设计方法,它清晰地分离了表达和内容,明确了角色定义以及开发者 与网页设计者的分工。事实上,项目越复杂,使用m o d e l2 设计模式的好处就越 大。 武汉理t 人学硕士毕业论文 b i o w s g r 图2 3j s pm o d e l 2 它引入了”控制器”这个概念,控制器一般由s e r v l e t 来担任1 6 j ,客户端的请求 不再直接送给一个处理业务逻辑的j s p 页面,而是送给这个控制器,再由控制 器根据具体的请求调用不同的事务逻辑,并将处理结果返回到合适的页面。因 此,这个s e r v l e t 控制器为应用程序提供了一个进行前后端处理的中枢。一方面 为输入数据的验证、身份认证、f i l 志及实现国际化编程提供了一个合适的切入 点;另一方蘧也提供了将业务逻辑从j s p 文件剥离的可能。业务逻辑从j s p 页 面分离后,j s p 文件蜕变成一个单纯完成显示任务的东西,这就是常说的v i e w 。 而独立出来的事务逻辑变成m o d e l ,再加上控制器c o n t r o l 本身,就构成了m v c 模式。实践证明,m v c 模式为大型程序的开发及维护提供了巨大的便利。 其实,m v c 开始并不是为w c b 应用程序提出的模式1 7 1 ,传统的m v c 要求m 将其状态变化通报给v ,徨盘于w e b 测览器工作在典型的拉模式磊非推模式, 很难做到这一点。因此有些人又将用于w e b 应用的m v c 称之为m v c 2 。正如 上面所提到的m v c 是种模式,当然可以有各种不同的具体实现,一般程序开 发人员就可以缀容易实现一个体现m v c 思想的程序框架,丽s t r u t s 就是一种具 体实现m v c 2 的程序框架。它的大致结构如图2 - 4 所示。 1 2 武汉理:i :人学硕士毕业论文 厂_ 发送 置j s p ( v i e w ) l o 坠 : | 健爝 a c i o n s e r v l e t 白( 控制器) 实铡纯 图2 4s t r u t s 的程序框架结构 图2 4 基本勾勒出了一个基予s t r u t s 的应用程序的结构1 8 i ,从左到右,分别是其 表示层( v i e w ) 、控制层( c o n t r o l l e r ) 、和模型层( m o d e l ) 。其表示层使用s t r u t s 标 签库构建。来自客户的所有需要通过框架的请求统一由弱唾a c t i o n s e r v l e t 的s e r v l e t 接收,根据接收的请求参数和s t r u t s 配置( s t r u t s - c o n f i g 。x m l ) 中a c t i o n m a p p i n g , 将请求送给合适的a c t i o n 去处理,解决由谁做的问题,它们共同构成s t r u t s 的 控制器。a c t i o n 则是s t r u t s 应用中真正干活的组件,开发人员一般都要在这蓬耗 费大量的时间,它解决的是做什么的闷题,它逶过调用需要的业务组件( 模型) 来完成应用的业务,业务组件解决的是如何做的问题【9 j ,并将执行的结果返回一 个代表所需的描绘响应的j s p ( 或a c t i o n ) 的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 以将响应呈现给客户。其过程如图2 5 所示箨o l 。 1 3 武汉璎上大学颈士毕烛论文 b u s i n e s sl o g i c ,p e r f o r mr e q u i r e d 、 、b u s i n e s sl o g l c 图2 5s t r u t s 响应用户请求的工佟流程 这罩要特别说明一下的是a c t i o n 这个类,上面已经说到了它是s t r u t s 中真 正干活的地方,也是需要高度关注的地方。可是,关于它到底是属于控制层还 是属于模型层,存在两种不同的意见,种认为它属于模型层,如: j s pw e b 编程指南;另一些则认为它属于控制层如:( ( p r o g r a m m i n gj a k a r t as t r u t s ) ) 、 ( ( m a s t e r i n gj a k a f t as t r u t s ) ) 和( ( s t r u t sk i c ks t a r t ) ) 等认为它是控制器的一部分, 还有其他一些书如( ( s t r u t si na c t i o n ) ) 也建议要避免将业务逻辑放在a c t i o n 类中, 也就是说,黧2 。4 中a c t i o n 后的括号中的内容应该从中移出i u 】,但实际中确有 一些系统将比较简单的且不打算重用的业务逻辑放在a c t i o n 中,所以在图中还 是这样表示。显然,将业务对象从a c t i o n 分离出来焉有利于它的重用,同时也 增强了应用程序的健壮性和设计的灵活性。因此,它实际上可以看
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 白猫急性应激反应机制解析-洞察及研究
- 矿山施工管理程序
- 酒店餐饮员工激励评价制度
- 自动化代码测试与缺陷检测-洞察及研究
- 用户生成内容在视频分享中的角色与价值-洞察及研究
- 统计学在市场调查中的数据处理方法
- 商场客户服务质量评估报告
- 初中语文重点知识点复习题库
- 注塑模具结构设计案例
- 初中物理课程目录与重点难点详解
- 汽车工厂培训课件
- 拔牙后健康教育与护理指南
- 环卫车辆安全培训课件
- 丝织品微生物防治-洞察及研究
- (2025)中国石油化工集团中石化招聘笔试试题及答案
- 以桂为墨:高中桂花文化校本课程的开发与实践探索
- 游戏俱乐部投资合同协议书
- 三级老年人能力评估师试题(附答案)
- 2025年云南事业单位a类真题及答案
- 国家开放大学《政府经济学》形考任务1-4答案
- 委托品牌代工合同协议
评论
0/150
提交评论