(计算机应用技术专业论文)struts技术分析及其在电信网管中的应用研究与实现.pdf_第1页
(计算机应用技术专业论文)struts技术分析及其在电信网管中的应用研究与实现.pdf_第2页
(计算机应用技术专业论文)struts技术分析及其在电信网管中的应用研究与实现.pdf_第3页
(计算机应用技术专业论文)struts技术分析及其在电信网管中的应用研究与实现.pdf_第4页
(计算机应用技术专业论文)struts技术分析及其在电信网管中的应用研究与实现.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(计算机应用技术专业论文)struts技术分析及其在电信网管中的应用研究与实现.pdf.pdf 免费下载

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

文档简介

s t r u t s 技术分析及其在电信网管中的应用研究与实现中文提要 s t r u t s 技术分析及其在电信网管中的应用研究与实现 中文提要 电信综合网管系统的目标是要最大限度地利用电信网络资源,提高网络的运行质量 和效率,向用户提供良好的通信服务。这需要集成不同类型的网络环境,采用先进的计 算机网络管理技术,根据网络资源数据对全网进行集中监控、集中维护和集中管理。 综合故障监视管理系统是电信综合网管系统的一个重要组成部分,其功能是帮助 操作维护人员及时了解全网设备和网络的运行状态,对设备告警和系统运行异常进行 集中监控,并帮助操作人员定位故障和诊断故障原因。 s t r u t s 是源代码开放的企业级w e b 应用开发框架,采用m o d e l2 m v c 设计模式, 其目的是要从整体上减轻构造企业w e b 应用的负担。s t r u t s 是刚推出不久的一种w e b 应用开发框架,具有可扩展性及健壮性等优点,在电子商务开发应用中正逐渐展现出 强大的生命力。 本文详细分析了s t r u t s 体系的结构原理及其特点,并结合“综合故障监视管理系 统”矮嚣龚孽舞发,遴弱s t r u t s 夔技零方法戬该系统鹣一令“蠢警设嚣”模块实理必铡, 在告警设鬓模块的设计中,细致地划分了模块的业务逻辑,具体分析了s t r u t s 对应 m v c 静各令缝 聿瀚应角方式,阐述了s t r u t s 实际瓣程序浚程,势给遗了部分关键 弋 码。在文章的最后,根据开发实践的体会总结出了s t r u t s 技术的应用特点,以及采用 s t r u t s 迸孬璜蠡开发的经验,为在众韭内部维广使掰s t r u t s 进行7 露益豹搽索。 为满恩综合故障监视管理系统对实时性的要求。系统设计中采用了菸享存储结 构。本文绘出了一种基于j a v a 语裔的共事存储结构的设计方案和褶应的蜜现代褐, 系统试运行结果表明,该共享存储结构可与s t r u t s 框架较好地融合,能够满足综合故 障簸视管联系统对实时往的要求。 【关键询】电信综合网管,s t r u t s ,共攀存储 作者:藏海婿 指导老师:徐汀荣 t h e a n a l y s i so fs t r u s t sa n dt h er e s e a r c ha n di m p l e m e n t a t i o ni n i n t e g r a t e dn e t w o r km a n a g e m e n ts y s t e m a b s t r a c t t h eu l t i m a t eg o a lo ft e l e c o mi n t e g r a t e dn e t w o r km a n a g e m e n ts y s t e mi st om a x i m i z e u t i l i z a t i o no ft e l e c o mn e t w o r kr e s o u r c e s ,i m p r o v ei t sq u a l i t ya n de f f i c i e n c y , a n dp r o v i d e h i g hq u a l i t yc o m m u n i c a t i o ns e r v i c ef o rt h eu s e r s t h u si tr e q u i r e si n t e g r a t i n gd i f f e r e n t t y p e so f n e t w o r ke n v i r o n m e n t sa n de m p l o y i n ga d v a n c e dn e t w o r km a n a g e m e n tt e c h n i q u et o r e a l i z et h ec e n t r a l i z e dc o n t r o l ,m a i n t e n a n c ea n dm a n a g e m e n to v e rt h ew h o l en e t w o r k a c c o r d i n gt ot h en e t w o r kr e s o u r c ed a t a i n t e g r a t e d f a u l tm o n i t o r i n g m a n a g e m e n ts y s t e m ( i f m m s ) i sa ni m p o r t a n t c o m p o n e n t o f t h i sw h o l es y s t e m i ti st oi n f o r l nt 1 1 es y s t e mo p e r a t o r sa n dm a i n t a i n e r so f t h e r u n n i n gs t a t u so ft h en e t w o r ka n di t sf a c i l i t i e si nt i m e ,t oc e n t r a l i z et h em o n i t o r i n go v e r f a c i l i t i e sa l a r m sa n ds y s t e mo p e r a t i n gf a u l t s ,a n dt oh e l pt h eo p e r a t o r sl o c a t et h ef a u l ta n d a n a l y z ei t sc a u s e 、 s t r u t si sa i lo p e ns o u r c ee n t e r p r i s e - g r a d ew e ba p p l i c a t i o nd e v e l o p m e n tf r a m e w o r k d e s i g n e d 、v i t hm o d e i v i e w c o n t r o l l e r ( m o d e l2 m v c ) p a t t e m a n di ti st oa l l e v i a t et h e b u r d e ne n t e r p r i s e st a k et ob u i l daw e ba p p l i c a t i o no nt h ew h o l e n e w l yi n t r o d u c e da si ti s 、i t l l s c a l a b i l i t y a n ds t a b i l i t y , i tb e c o m e sm o r ea n dm o r ep o p u l a ri nt h ee b u s i n e s s a p p l i c a t i o nd e v e l o p m e n tf i e l d t l l i sp a p e rh a si n t r o d u c e dt h ea r c h i t e c t u r a lp r i n c i p l ea n dc h a r a c t e r i s t i c so fs t r u t si n d e t a i l ,a n di l l u s t r a t e di t sd e v e l o p i n gm e t h o d sw i t ht h ee x a m p l eo fa l l a l a r ms e t t i n g m o d u l e i nt h ei f m m sp r o j e c t i nt h ed e s i g no f a l a r ms e t t i n g m o d u l e ,t h eb u s i n e s sl o g i eh a sb e e n c a r e f u l l yp a r t i t i o n e d ,t h ea p p l i c a t i o np a r e mo f e a c hc o m p o n e n tt h a ts t r u t sr e l a t i v e st om v c h a sb e e nc o n c r e t e l ya n a l y z e d ,t h ea c t u a lf l o wo fs t r u t sh a sb e e ne x p a t i a t e da n ds o m ek e y c o d e sh a v eb e e nl i s t e d b a s e do nm yp e r s o n a le x p e r i e n c e s ,t h el a s tp a r to ft h i sp a p e rh a s s u m m a r i z e dt h ea d v a n t a g e sa n dd i s a d v a n t a g e so ft h es t r u t ss y s t e m ,a n dt h ee x p e r i e n c e so f e m p l o y i n gs t r u t si np r o j e c t sd e v e l o p m e n t a l lt h e s ew o r k sw o u l db ev e r yb e n e f i c i a l e x p l o r a t i o nf o rm a n ys o f t w a r ee n t e r p r i s e st ou s es t r u t st od e v e l o pp r o j e c t i no r d e rt om e e tt h er e a l - t i m er e q u i r e m e n t so f i f m m s t h es y s t e me m p l o y s “s h a r e m e m o r y s t r u c t u r ei ns y s t e md e s i g n 1 1 1 i sp a p e rh a sg i v e nad e s i g no f “s h a r em e m o r y ” s t r u c t u r eb a s e do nj a v al a n g u a g ea n dc o r r e l a t i v ec o d e s t h er u n n i n gr e s u l ts h o w st h e “s h a r em e m o 妒s t r u c t u r ew o r k sw e l lw i t ht h es t r u t sf r a m e w o r ka n di sa b l et om e e tt h e r e a l t i m er e q u i r e m e n t so f i f m m s k e yw o r d s :i n t e g r a t e dn e t w o r km a n a g e m e n t s t r u t ss h a r em e m o r y i i w r i t t e nb y s u p e r v i s e db y z a n gh a i - j u a n x ud i n r u n g 苏州大学学位论文独创性声明及使用授权声i ! j 学位论文独创性声明 本人郑重声明:所提交的学位论文是本人在导师的指导下,独立进行研究工 作所取得的成果。除文中已经注明引用的内容外,本论文不含其他个人或集体已 经发表或撰写过的研究成果,也不含为获得苏州大学或其它教育机构的学位证书 而使用过的材料。对本文的研究作出重要贡献的个人和集体,均已在文中以明确 方式标明。本人承担本声明的法律责任。 研究生签名: 学位论文使爝授权声明 日期 c 跚g - 4 、2 苏州大学、中国科学擞术信息研究所、国家图书馆、清华大学论文合作部、 中毽巷秘貌文默信患情报中心有权臻塑本人掰送交学位论文豹复帮l _ 孛稼电子文 、 档,可以采用影印、缩印或疑他复制手段保存论文。本人电子文档的内容和纸质 论文的内容相致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以 公匆( 包括弱鼗) 论文戆全部藏罄分内容。论文豹公, f r ( 包摆翻登) 授投苏蚓大 学学位办办理。 日期;趔5 :垒! 矽 f j j l :趔:垒! 墨9 s t r u t s 技术分析及其在电信网瞥中的应用研究与实现绪论 1 选题的背景与意义 绪论 电信行业的巨大发展使得电信网络日益庞大和复杂,如何科学、经济有效地管理 这些网络已成为各运营商重点关注的内容。电信行业现有的网管解决方案及产品都是 在相关标准和建议还不完善的基础上开发出来的,对于大多数的电信运营商和电信服 务提供商来说,有很多不同类型的网络环境,因为不能集成到一个统一的综合网管环 境中,难以有效地进行管理维护【1 10 这些困难导致了对综合网管系统的迫切需要,即把现有的独立存在的各专业网 络系统综合成一个功能齐全、面向未来的综合网络管理系统。综合网管系统通过一 个网管工作站就能够对互连的不同网络实施管理和控制,从而实现对全网的综合管 理,包括全网故障分析和故障定位、全网性能综合分析等功能,这样既便于系统的 维护和使用,也可以提高系统的利用率,而且新的网管需求也可以直接纳入到综合 网管系统之中。 虽然建设综合网管系统非常必要,但开发综合网管系统还存在着很大的难度,因 为它包含了多方面的综合要求和综合内容。电信综合网管系统需要支持现有的多设备 厂商、多种电信和计算技术,以话音业务为中心,特别是以数据业务为核心的下一代 网络,要求该系统既可对各个电信专业网进行管理,也可横跨各专业网提供综合解决 方案,用于业务提供、故障追踪、资源数据及容量管理,所以系统的可扩展性是需要 首先解决的难点。另外,电信综合网管系统需要提供合理有效的监控、维护、服务、 管理手段,来解决现行管理中的问题,并提供一定程度的决策分析支持,所以系统的 实时性是另一个需要解决的难点。 目前我国各电信运营商大都拥有一个规模宏大的电信网络,如本地程控交换网、 长途和国际交换网、本地光缆网、s d h 和p d h 传输网、接入网、分组交换网、d d n 网、i s d n 网、a t m 宽带业务网、多媒体通信网以及互联网等多种电信网络。随着网 络规模的不断扩大,网上设备的种类和数量也在不断地增加,整个网络的复杂性日益 1 绪论s t r u t s 技术分析及其在电信网管中的应用研究与实现 提高,多厂商问题非常突出,各种网络和设备缺乏统一的接口标准和规范【2 】【3 】。 近年来,各个电信运营商都陆续引进和自主开发了众多的网络管理系统,市话局、 长话局、郊区局等都分别建设了自己的网管系统,包括交换、传输、数据、信令、线 网资源、电源环境监控等,并负责全国专业网管系统本地节点的维护管理;在网络管 理的分层结构上,有网元管理层( 如交换机集中监控系统) 、网络管理层( 如故障监 视系统) 、业务管理层( 如智能业务网管) 和事务管理层( 如运维作业管理系统) 。然 而,由于不同的开发商采用各自不同的技术自行研制,并且大多采用各自的管理协议, 不可避免地带来网络协议互不兼容、管理信息不能互通、管理内容庞杂、缺乏对整个 网络的综合管理、操作界面多样等问题。 针对上述电信网络管理的现状,各电信运营商都希望能够在目前网络管理的基础 上建立综合网管系统,以实现全网的综合管理。电信综合网管系统的目标是要最大限 度地利用电信网络资源,提高网络的运行质量和效率,向用户提供良好的通信服务。 为此,需要采用先进的计算机网络管理技术,集成不同类型的网络环境,根据网络资 源数据对全网进行集中监控、集中维护和集中管理。 目前用于网络管理的技术很多,新的网络管理技术也不断出现。常用的网络管理 技术有:基于t i v n 面向电信网的网络管理技术,基于c o r b a 面向网管系统互联的 网络管理技术,基于s n m p 面向数据网和计算机网的网络管理技术,基于w e b 的网 络管理技术,等等。本文研究基于w e b 的网络管理技术。 图1 是电信综合网管系统的一般模式。该系统是架构在各专业网管( 如交换网管、 传输网管、及动力监控系统等等) 之上的综合信息处理平台,它所实现的功能是从全 网和全局的角度观察、监测网络的运行,如综合故障监视是通过告警的综合管理实现 告警的统一监控,对发生的告警快速进行定位、判断,并加以处理,减少故障历时; 综合资源是通过资源的统一管理快速了解电信网络资源的详细配置情况、各类资源的 利用率情况,更加合理地调配网络资源、进行网络优化;综合网络分析是通过性能分 析及时发现网络的话务流量流向,传输网络上的性能变化,提供最新的话务信息,并 能根据配置要求产生相应的性能告警。在此基础上进一步提供相关的业务分析决策支 持手段如资源分析、网络分析、故障派单等等。 2 s 1 激l r 倦技米分析及其氍电信辫臀中的应用耕究与实现堵论 图1 电信综合网管系统的一般模式 2 国内外研究与应用现状 综合故障监视管理系统怒电信综合跨管系统的一个重要缎成部分,其功能是帮勘 搽嚣维护太受及对7 勰全霹设餐窝嬲络豹运露扶态,瓣设鍪袋警穗系绫运行爨常进行 集中臆控,并帮助操作人员定位故障和诊断敞障原因,该系统的大部分模块都采用 w e b 藏矮模式,因魏舞发工爨豹选簿棼豢耋蘩。 w e b 应用开发框架有很多,使用鞍多也比较成熟的有s y b a s e 的p o w e r b u i l d e r w e b f r a m e w o r k ,m i c r o s o f t 韵n e t ,瑶m 静w e b s p h e r es t u d i o 等,组是这焦工其的使用戳 及维护升级的费用都相当昂贵。随着我国软件业的蓬勃发展,软件开发利润越来越平 均化,那些希望降低成本的火企业和处于发展期的中小软件企业,都滚切希黧使用质 量离籁又开源的拜发正具。农w e b 瘦用开发领域,s t r u t s 黢应运 l 霉擞了。 s t i u t s 是源代码歼放的企姚级w e b 应用开发框架,其设计目的悬骚从整体上减轻 3 堵论 s t r u t s 技术分析及其在电信罔管中的应用研究与实现 构造企业w e b 应用的负担。s t r u t s 是在j a k a r t a 项目下开发的软件,由一系列的框架类、 辅助类和定制的j s p 标记库构成,定位在基于m o d e l2 设计模式的j 2 e e 应用开发。 除了经济性之外,s t r u t s 还具有可扩展性以及健壮性的优点,基本符合j 2 e e 商业开发 的要求。s t r u t s 目前已推出了1 o 版和1 1 版,且还在不断的升级中。由于有很强的生 命力s t r u t s 在j 2 e e 商业开发应用中迅速成长。 由于s t r u t s 是一种刚推出不久的w e b 应用开发框架,用它来进行商业开发的并不 多。一些大的开发软件提供商看到了s t r u t s 良好的前景,纷纷在自己的产品中支持该 框架,例如v i s u a la g ef o rj a v a , j b u i l d e r , e c l i p s e ,e m a c s ,以及t e x t p a d 等等就集成了 s t r u t s 。由于各软件公司技术文档保密的原因,应用s t r u t s 体系开发综合网管系统的文 档资料很难找到,因此开发起来有一定的难度。 3 本文的主要内容 本论文的项目背潦是基予s t r u t s 体系结构开发综含故障澈视管理系统。实时性和 可扩麟蛙是该系统熬魏个主要设计要求,为鼗,系统孳| 入共事存镰结擒玉l 这告警信息 的访闷,并选择可扩展性好的j a v a 语言作为开发语宙。如何用j a v a 语言实现并采 用s m m 调用茭辜存德缝梭燕崔实载串霉要解决戆闲趱。 论文主要包括两方面的内容,一建系统介绍了s t r u t s 体系结构及其特点,井以综 台藏簿箍褫繁理系统巾豹“舞警设置”模块必稠详细讨论7 慕子s t r u t s 瓣开发方法, 总结了项目开发经验;其次悬给出了旗于j a v a 语言的共享存储结构的设计方案,并 实现了与s t r u t s 框架的融合。 s t r u t s 技术分析及其在电信罔臂中的应用研究与实现 第一章 第一章s t r u t s 技术分析 s t r u t s 是在j a k a r t a 项目下开发的源代码开放软件,由一系列的框架类、辅助类和 定制的j s p 标记库构成,定位在基于m o d e l2 m v c 设计模式的j 2 e e 应用开发。在 m o d e l2 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 力图从整体上减轻构造企业级w e b 应用的负担。并提供国际化支持。s t r u t s 的设计目标是为m o d e l2 m v cw e b 应用开发提供个强大的框架 4 1 1 5 i 。s t r u t s 的j a y a w e b 应用框架构架子s e r v l e t 之上。给开发者提供一个无缝的集成环境,使开发者易 于设计、编写和维护系统。 1 1s t r u t s 技术概述 1 1 1 框架( f r a m e w o r k ) 随着软件开发技术的发展,在多层的软件开发项目中,可重用、易扩展麒经过良 好灏试熬软彳串缓舞越来越为入弼掰篱绦,霞为久稻搿缢将主蘸耩力爝在分析帮梅建簸 务逻辑的应用上,弼不是去编写重复繁杂的代码,予是,人们将相溯类型问题的解决 途径进行抽象,抽敬成一个应用框絮。 框架的体系提供了一套明确枫制,让拜发人员缀容易地扩展帮按臻应用程序在熬 个框架开发上的结构,框槊溉简单的形式是组类鞠接口,它们相甄协作咀解决特定 类型浆软l 孛溜题。攥絮具考塔下特撼; 框絮包括犬最类或组件,每一种类或组件都提供了菜种概念的抽象。 握絮定义了这些类绒维终翔餐资俸解决蘑撩。 框架组件可以重用。 框絮可 ;盂程更高层次上缀缀模型,优秀豹糕架应该为不两类型的农朋程序摄 供通用行为支持。 s 第一章 s t r u t s 技术分析及其在奄稽鞭警申簿瞧瑶研究实现 1 1 2s t r u t s 框架和w e b 容器 s t r u t s 框架基于j a v as e r v l e t 技术,因此它依赖于w e b 容嚣。容器用于为运纷其 中的软件组件提供主控环境和通用服务,从而开发人员无需自己编写这热服务。w e b 餐器悫谗s e r v l e t 、j s p 缀转秘其絮j a v a 炎在容爨审部署帮撬雩亍。 圈2 1 是j 2 e e 应用程序的层次结构,它包括以下三个层次,而s t r u t s 框架位于其 中的中间层【6 】。 客户层:这一层提供用户与应用程序的交互方式,这种交互可以通过w e b 浏 览器实现,也可以通过w e b 服务器接口以编程方式实现,无论客户层是什么 类型,这种交互作用都必须包括提交请求和接收来自中间层的某种响应,在 s t r u t s 框架中,最常见的客户端是w e b 浏览器。 中间层:一般指“应用程序层”。在图2 1 中,将w e b 层也归入了中间层, 因为这两层通常组合使用。w e b 层使得客户层可以与应用程序层的应用程序 进行逻辑通信和交互作用。在典型的w e b 应用程序中,通常全部的应用程序 逻辑就驻留在w e b 层中,这时候就不再需要使用如e j b 的类似组件了,在大 型的企业级应用程序中,w e b 层用作翻译器,将h i t p 请求映射为中间层的 服务调用。w e b 层可直接与数据库通信,在企业级应用程序中与应用程序服 务器通信。w e b 层作为粘合荆将客户端应用程序绑定到核心后台业务系统中。 驻留在w e b 层中的组件使开发人员可以扩展w e b 服务的基本功能。在s t r u t s 中,可以通过运行s e r v l e t 容器中的框架组件来扩展w e b 服务的功能。 需要注意的是并非所有的s t r u t s 应用程序都有应用程序层,如小型w e b 应用程序 就是直接与数据库或其它数据存储通信( 在本文中是指与数据库和共享存储类通信) 。 当使用应用程序服务器时,w e b 层使用远程方法调用( r m i ) 与应用程序服务器通信。 如果应用程序服务器中有e j b 服务器,所使用的通信协议是i i o p ( i n t e m e ti n t e r - o r b p r o t o c 0 1 ) 之上的r m i 。 企业信息系统层( e i s 层) :这一层包含整个企业使用的数据和服务,它提供 了企业资源的访问手段,企业资源包括数据库、主机、客户关系管理( c r m ) 应用程序以及资源规划系统。 s t r u t s 框架驻留在w e b 层,s t r u t s 应用程序由w e b 容器主控,可以使用该容器提 6 璺塑垫鉴坌堑墨苎壅皇堕璺筻宝苎生星楚塞量塞璺 一 苎= 兰 供的服务。比如通过 r i y i 甲协议处理请求,开发人员无需考虑构建解决业务问题的应 嬲程痔溺题。 客户层 中问层 e i s 层 翻1 1s t r u t s 框架和w e b 容器 1 2s t r u t s 的设计模式( m v c ) s t r u t s 技术是基于m v c 设计模式的。m v c 设计模式起源于s m a l l t a l k 语言,它由 模型( m o d e l ) 、视图( v i e w ) 和控制器( c o n t r o l l e r ) 三个部分组成,表1 1 定义了 这些组件【7 1 。 表1 1m v c 组件表 组件描述 模型( m o d e l )模型表示应用的数据和操作这些数据的逻辑方法。模型用来封装 和显示数据对象,任何和燕个应用有关的持久性的数据都应该放 在模型中。对于模型。它所提供的a p i 不能只针对某一个专用的 视图或控制器,应该更加通用化以适应不同客户的需求。 视图( v i e w )视图将模型的当前状态展示给用户,具体的显示方法由视图负 7 第章 s t r u t s 技术分辨及其在电愤秘警中钓窿耀研究岛实现 舞- 因此一个模型可以适用多个不同始褫墨。在模型状态改变后, 通过模型和视图之间的协议,视图得知这种改燮并修改自己的显 零。对予用户的辕入,视弱将它嚣】交鲶控割嚣鲣理。 控制器( c o n t r o l l e r )锻义对用户的输入执行相应操作的接阴,它用来操作模测和数据 辩象。控髑器囊蠢交互和将掰户赣a 豹数舞导入攘型,窀还秘弱 用户的输入将应用转向其他视图。 使确m v c 的优点如下鞲【1 2 】: 可靠性:表示层和业务层分离,这样就允许更改表示层代码而不用重新编译 模型和控制器代码。 高重用性和适应性:从应用范围角度看,m v c 模式允许使用各种不同样式 的视图,包括任何w e b ( h t t p ) 浏览器或无线浏览器( w a p ) 。来访问同 一个服务器端的代码;从代码编写角度看,由于表示层和业务层的分离,可 以在不更改表示层代码的情况下,更改控制器代码,以达到更改视图与用户 交互的响应模式的目的,也可以只更改表示层代码而不更改模型和控制器代 码,以适应客户层视图的不同需求。 较低的生命周期成本:m v c 使得降低开发费用和维护用户接1 :3 的技术成为 可能。 快速开发和部署:极大节省开发时间,程序员可将主要精力集中于业务逻辑 ( j a v a 开发人员) 及表现形式( h t m 吐和j s p 开发人员) 上。 可维护性:分离表示层和业务逻辑层也使得基于s t r u t s 的w e b 应用更易于维 护和修改,一方面的改变不会影响另一方面,比如原来用的是c l i ( c o m m a n d l i n ei n t e r f a c e ) ,后来要改成g u i ( g r a p h i e su s e ri n t e r f a c e ) ,只要了解原来的模 型和控制器的接口,然后构造g u i ,把它按过去的协议和模型关联起来就可 以了。 1 3s t r u t s 构建w e b 应用程序的方法 早期的j s p 规范规定了使用j s p 技术构建w e b f 盘用程序的两种方法,a p j s pm o d e ll 和j s pm o d e l2 $ 系结构,它们的主要区别在于如何以及使用哪个组件处理请求过程。 $ t r l r i 葛技术分析及其在电信用譬中应用研究与实现 第一章 :e e m o d e ll 体系结构中,j s p 页面负费处理请求过糨,并将输出结果显示给客户端,如 鬓1 2 f l l 承。 图1 2 j s pm o d e lt 体系结构 在m o d e l 2 体系结构中,客户端从不直接 向j s p 页面发送请求。这允许s e r v l e t 执行前 端处理过程,包括身份验证和授权,集中登录,并帮助进行国际化设置。一旦完成了 请求处理过程,就将请求发送到正确的j s p 页面。主要区别就在于m o d e l2 体系结构中引 入了控制器s e r v l e t ,它提供了单一的入口点,比m o d e l1 方法具有更多的重用和可扩展 性。m o d e l2 体系结构中可以清晰地区分业务逻辑、显示输出和请求处理过程。这种分 解模型通常称为mvc 模型。虽然m o d e l2 体系结构看上去可能非常复杂,但是它确实 大大简化了应用程序。使用m o d e l2 方法构建的w e b 应用程序通常比使用m o d e ll 体系结 构构建的应用程序易于维护,也更具有扩展性。m o d e l 2 t 1 系结构如图1 3 所示。 图1 3j s pm o d e l2 体系结构 9 第一章 s t r u t s 技术分析爰其在奄糟鞲警中的瘫用研究每实琨 s t r u t s 通过提供一个控制器s e r v l e t 实现了j s p 的m o d e l2 架 姆,这个控制器可以 用来管j 塑j s p 页灏和其他视图页面之间的流程,s t r u t s 邋_ 醴使用a c f i o n f o r w a r d i 和 a c i 锄聪溅袋保涯控铡流实瑗m v e 模式,j s p 可以譬l 用一个逻辑嚣据,控割鼹组 件在运行时提供准确的u r i ( 通用资源标识符) 。 表1 2 列出t s t r u t s 的核心类与经典的m v c 组件职责的对应关系。 表1 2 核心s t r u t s 类和m v c 的对应关系 类描述 a e t i o n f o r w a r d 用户指向或者视图选择 a c t i o n f o n n表示状态改变的数据 a c f i o n m a p p i n g 表示状态改变的事件 a e t i o n s e r v l e t 控制器,接受用户请求和状态改变以及发出视图选择 控制器的一部分,和模型交互执行状态改变或状态查询,以及告 a c t i o n 诉a e t i o n 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 和视图助手( v i e w h e l p e r s ) 来沟通控制器和模型。表1 3 列出t s t r u t s 配置文件和描述了他们在框架中的 角色。 表i 3s t n u t s 配置文件 文俘 吾鹣 a p p l i c a t i o n r e s o u r c e s p r o p e r t i e s存储本地化储息和标擞,或者使应用程序国际化,为 了寰褒罾际纯,对瘫举鞫熬语嘉,痘捷爝苓霾静瓣蛙 文件 s t r u t s - c o n f i g x m l 存糖控割爨对象豹缺键配呈,谯捂模型支簿豹用户摆 向,状态改变,状态焱询 必将s t r u t s i e 置数据提供绘视图,框架数j s p 括签黪形式提供了丈璧豹助零类,这 些助手类对于编写简洁高效的j s p 代码起到很大的作用。如表1 4 所示。 表1 4s t r u t s 援塑动手 标记库描述符辩的 s t r u t s - h t m l 。r i d 掇供显示h t m l 对象( 例如,表单、按镪和复选框) 豹麓便 方法 s m a s - b 髓n t l d 使访问b e a n 以及对新b e a n 的定义更褰易 s t r u t s - l o g i c r i d 支持逻辑构造,懿便可以按照实际需簧有条俘魏显示文本或 者循环显示相应的文本 1 0 s t r u t s 技术分折及其在电信同管中的应用研究与实现 第一童 1 4s t r u t s 框架及组件分析 m v c 模式对应的s t r u t s 框架图州,如图1 4 所示: 图1 4m v c 模式对应的s t r u t s 框架 这个处理过程由5 个基本的步骤组成。 1 由显示视图产生一个请求。 2 。谚袋拔a c t i o n s e r v l e t ( 控制器) 接l | 芟,宅在s t r u t s - c o n f i g x m l 文咎孛罨找瀵求 的u r i ,找到对应的a c t i o n 兴后,a c t i o n 类执行相威的业务逻辑。 3 。a c t i o n 类撬褥建立稳模墼缀佟基疆上靛照务逻黉,模鍪l 缀辞楚襄蠹藤程痔关 联的。 4 。基a c t i o n 粪处理完整务逻辑,它藏控裁载返回给a c t i o n s e r v l c t 。 a c t i o n 类提供一个镳值作为避回的一部分。它指髓了处理的结果。a c t i o n s e t y l e r 使用这个键 值采决定在什么视图巾显示a c t i o n 酌类处理结果。 5 。a c t i o n s e r v l c t 把a c t i o n 类处理结果传送到指定的视粒孛,请求斡过程也就完 成了。 第一章s t r u t s 技术分析_ 疑箕在窀铸耀警中酌硪用研究与燕现 l 。4 。lm o d e l 模型靛主要鼹煎是帮助理辫,搓述或嚣模拟瑗实世赛巾弱事务是懿键运锃熬。在 软件开发中,模型是现实世界实体的逻辑表达,由类和接翻组成。w e b 应用程序的模 羹凌箨# 器重要,宅包含了囊堑灾薅及按潮谚弱秘修改数据筑燕裂。在劳发孛应该将 熊独立出来,以维护数据的完整性,减少冗余并增加其重用性。m o d e l 组件包括祭统 获态j a v a b e a n , 韭务逻辑j a v a b e a n 帮a c t i o n f o r mb e a n s e 在介绍m o d e l 之前,首先要对j a v a b e a n 的功能和属性有一个了解。j a v a b e a n 是 一释藻予j a v a 语言掰耋溺缀佟,毽爨秘j a v a 类,象遵簸一定蘸设毒中模式,缀容象 和其他开发工具和组件一起使用,在j a v a b e a n 中,类必须是具体的和公共的,并且具 有无参数懿梅造器。 j a v a b e a n 通过提供符合一致性设计模式的公共方法将内部域暴露,这称为 j a v a b e a n 的属性,j a v a b e a n 通过属性和其他j a v a 类交置,其他j a v a 类可以搡作这些 j a v a b e a n 属性。 1 4 ,1 。2 系统状态b e a n s 和业务逻辑b e a n s m v c 体系中的m o d e l 部分从概念上可以分为两类一一系统的内部状态,和改变 系统状态的动作。 系统状态b e a n s 系统的实际状态通常表示为一组个或多个的j a v a b e a n s 类组成的类集合,其属 性定义了系绞熬当蕊羧态。怼予攘模较小数系绞,或者不嚣要长瓣阕缳存靛获态绩悫, 一组系统状态b e a n s 可以包含所有系统曾经经历的特定细节的信息,也可以用来表示 永久绦存在一些舞部数据库审豹信惠,在需癸辩霹戳获鞭务器豹蠹存巾创建袋清豫。 在规模较大的应用程序中。e n t i t ye j b s 也经常扮演这种角色。 业务邋辑b e a n s 衣系统辩发过瑕中,一般对于成用程膨中功能逻辑,希望封装成对相虚的 2 s t r u t s 技术分析及其农电信一警巾的应用姘览与实现第一章 j a v a b e a n s 的方法调用。依赖于应用程序的复杂度和范围,业务逻辑b e a n s 可以是与 撑兔参数传递豹系绞状态b e a n s 交纛接翅鹣营逶j a v a b e a 璐,或者使用j d b c 键爆访瓣 数据库的酱通j a v a b e a n s 。与j 2 e e 其他开发模式棚对比,在不严格的情况下,可以这样 璎群:e n t i t yj a v a b e a n s ( 实搭j a v a b e a n s ) 稷姿予系绫状态b e a n s ,秀s e s s i o nj a v a b c a n s ( 会 话j a v a b e a n s ) 相当于业务逻辑b e , a i s 。 为了较好的实现代码可重用性,业务逻辑b e a n s 应该这样设计: 就是相对独立, 它们不知道自己被执行于w e b 应用环境中,也就是说,如果发现在设计的j a v a b e a n 中,必须i m p o r t 一个j a v a x s e r v l e t * 类,业务逻辑就已经被捆绑在了w e b 应用环境中, 这样就不再是个很好的设计方法了。 和其它w e b 应用框架相比,a c t i o n f o r m 属于s t r u t s 独有。严格地说,a c t i o n f o n n 非常独立,并不能归于m o d e l 组件,也不能归于v i e w 组件,放在这里讨论只是单纯 从该类的命名上考虑。 a c t i o n f o r m 是s t r u t s 特有的j a v a b e a n ,发挥独特的作用:在用户和业务层之间( 或 视图和模型之间) 来回传递客户机的输入数据,框架自动从请求中收集输入数据,并 使用表单b e a n 将此数据传递给a c t i o n ,然后传递给业务层。为了将表示层与业务层 分离,不必将a c t i o l l f o m 本身传递给业务层,应该使用a c t i o n f o r m 的数据创建适当 的d t o ( 数据传递对象,也叫值对象) 。 a c t i o n f o r m 对象扩展了o r g a p a c h e s t r u t s a c t i o i l f o 咖类,这个对象捕获通过请求 传送的输入,当浏览器提交一个表单,它在请求中为每个表单中的字段创建一个参数。 a c t i o n f o 咖针对每个h t m l 表单中的字段具有一个对应的属性,a e t i o n s c r v l e t 匹配 请求中的参数和a c t i o n f o m 中的属性,当匹配好后,a c f i o n s e r v l c t 为属性调用s e t 方法,并将请求中的值传入。s t r u t s 框架通常假定为每一个应用程序中请求的输入创 建了一个a c t i o n f o r m b e a n ( 即一个实现了a c t i o n f o 瑚接口的类) 。 如果在a c t i o n m a p p i n g 配置文件中定义了a c t i o i l f o 珊,s t r u t s 的c o n t r o l l e rs c r v l c t 在调用适当的a c t i o n 方法前将自动执行如下的服务: 检查动作的映射信息,确认是否配置了a c t i o n f o r m 。 第一章s t r l r r s 技木分析及其在彀惰两管串豹应用研究砖窑现 如果为动作配甓了a c t i o n f o r m ,擞q 使用a c t i o n 元素的n a m e 属性焱看表单b e a n 蒋己置信息。 检查是黉已经创建了a c t i o n f o r m 斡实铡。 如果a c t i o n f o r m 出现在j e 确的作用域,而且是新请求所需要的炎型,则煎用 它。 否则,就创建所要求的a c t i o n f o r m 的新实例,将它存储在正确的作用域( 由 a c t i o n 元素的s c o p e 属性设置) 。 在a c t i o n f o r m 实例上调用r e s e t ( ) 方法。 为每个名字对应于b e a n 中的一个属性的请求参数,调用相应的s e t 方法。 最后,如果v a l i d a t e 属性设置为“t r u e ”,则在a c t i o n f o r m 实例上调用v a l i d a t e 0 方法,并返回任何错误。 由这些步骤可以得到a c t i o n f o r m 的生命周期,如图1 5 所示: 嘲1 5a c t i o n f o r m 舶生命周期 1 4 刚x 盯r s 技木分析及其在电信弼瞥中的应用研巍与实现 第一章 对于j g p 页黼,如槊需要传递表单数据,应该使用a c

温馨提示

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

评论

0/150

提交评论