




已阅读5页,还剩67页未读, 继续免费阅读
(信号与信息处理专业论文)基于java+ee平台的远程诊断系统的开发和研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着因特网技术的不断发展和j a v ae e 平台的广泛应用,基于b s 的多层 w 曲体系结构逐渐发展成为w e b 应用开发的主流,实现w 曲应用的众多框架也 层出不穷但仍然存在程序可重用程度低、维护工作繁琐等不足之处。因此, 如何选择一种较好的体系结构、设计模式和开发框架进行w e b 应用软件的设计 与开发,是一个值得研究的课题。 目前,基于j a v ae e 平台的w 曲应用开发方式主要有两种,传统的w 扑应 用开发方式和基于m v c 模式的w e b 应用开发方式。其中m v c 模式的w e b 应 用开发方式分离了数据控制和数据表现,在实现多层w e b 应用中占有明显优势。 s t r u t s 就是一个实现m v c 模式的w e b 应用开发框架,它可以有效地表达系统设 计架构,降低系统的复杂程度与维护难度。s p r i n g 也是一种多层的j a v ae e 应用 轻量级开发框架,它可以降低应用程序开发的难度。h i b e r n a t e 是一个持久层开 发框架,它可以提高数据库访问层的开发效率和减轻开发的复杂度。 本文首先论述了j a v ae e 技术和j a v ae e 的多层体系结构:其次对s t r u t s 、 s 两n g 、h i b e r n a t e 框架及其特点进行了研究,并具体分析了各个框架在w e b 应 用的不同层上发挥的作用;最后整合三种框架,设计一个适合企业w e b 应用的 架构,提出了基于j a v a e e 平台的远程诊断系统的解决方案,使得系统具有灵活 性、复用性和可维护性。 关键词:j a v ae e ;m v c ;s t r u t s ;s p r i n g ;h i b e r n a t e ;远程诊断系统 a b s t r a e t a b s t r a c t w i t l lt h ed e v e l o p m e n to fi n t e m e ta n dt h ew i d eu s eo fj a v ae ep l a t f o r m t h e m u l t i - l a y e rw e ba r c h i t e c t u r eb a s e do nb sp a t t e r ng r a d u a l l yb e c a m et h em a i n s t r e a m o ft h ew e ba p p l i c a t i o n m a n yt e c h n o l o g i e sa n df r a m e w o r k si nd e v e l o p i n gw e b a p p l i c a t i o nw g r ea v a i l a b l e b u t ,t h e r ea r es t i l ls e v e r a ld i s a d v a n t a g e sl i k el o w s o f t w a r e r e u s a b i l i t ya n df u s s ym a i n t e n a n c ee t c t h e r e f o r e ,h o wt oc h o o s ea b e t t e ra r c h i t e c t u r e , ag o o dd e s i g np a t t e ma n dad e v e l o p i n gf r a m e w o r ki nd e s i g n i n ga n dd e v e l o p i n gw e b a p p l i c a t i o nw a s aw e l lw o r t hs t u d y i n g n o w , t h e r ea r et w od e v e l o p m e n tm o d e sa b o u tw e ba p p l i c a t i o nb a s e do nt h ej a v a e ep l a t f o r m ,t h et r a d i t i o n a ld e v e l o p m e n tm o d ea n dt h em o d eb a s e do nm v c p a t t e r n t h em o d eb a s e do nm v c p a t t e r ns e p a r a t e st h ec o n t r o lo f d a t aa n dt h ev i e wo fd a t a , i t h a st h ea d v a n t a g ei n d e v e l o p i n gm u l t i - l a y e rw e ba p p l i c a t i o n s t r u t s i saw e b a p p l i c a t i o nf r a m e w o r kw h i c hh a sm v cp a r e m i te x p r e s s e sf r a m eo fs y s t e md e s i g n a n dr e d u c e st h ec o m p l e x i t ya n dm a i n t e n a n c eo fs y s t e m s p r i n gp l a y sd o w nt h e d i f f i c u l t yo fd e v e l o p i n ga p p l i c a t i o n w h i c hi sam u l t i - t i e rj a v ae el i g h t w e i g h t f r a m e w o r k h i b e r n a t ee n h a n c e st h e e f f i c i e n c yo fd a t a a c c e s sa n dr e d u c e st h e c o m p l e x i t yo f d e v e l o p i n gw h i c hi sap e r s i s t e n c ef r a m e w o r k t h i sp a p e r , f i r s , i n t r o d u c e dj a v ae et e c h n o l o g ya n dt h em u l t i t i e ra r c h i t e c t u r e o fj a v ae e ;s e c o n d l y , t h i sp a p e rd i dr e s e a r c ho ns t r u t s ,s p r i n ga n dh i b e r n a t e ,a n d a n a l y s e de a c hf r a m e w o r k sf u n c t i o ni nw e ba p p l i c a t i o nl a y e r ;f i n a l l y ,a na r c h i t e c t u r e w a si n t e g r a t e dw i t ht h et h r e ef r a m e w o r k sw h i c hw a ss u i t a b l ef o re n t e r p r i s ew e b a p p l i c a t i o n a n dt h i sp a p e rp u tf o r w a r das o l u t i o ni nr e m o t ed i a g n o s es y s t e mb a s e o nj a v ae em u l t i t i e r e df r a m e w o r k , i ti m p r o v e st h es y s t e m sf l e x i b i l i t y , r e u s a b i l i t y a n dm a i n t e n a n c e k e yw o r d s :j a v ae e ;m v c ;s t r u t s ;s p r i n g ;h i b e r n a t e ;r e m o t ed i a g n o s es y s t e m i i 学位论文独创性声明 学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得南昌太学或其他教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示谢意。 学位论文作者签名( 手写) :签字日期:力叨年, 月? 。日 学位论文版权使用授权书 本学位论文作者完全了解直昌盔堂有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权直昌盍堂可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编本学位论文。同时授权中国科学技术信息研究 所将本学位论文收录到巾国学位论文全文数据库,并通过网络向 社会公众提供信息服务。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名 茅埠 导师签名: 税及 签字日期:堋年f2 ,月f 。日签字日期:砂例7 年f 月扣日 第一章引言 第一章引言 1 1 课题的研究意义 当今时代信息处于飞速发展的阶段,人们已经处在数字化的生存空间之中, i n t e r a c t 网构造了无限的信息资源,w e b 浏览器已成为人们在互联网上获取信息、 沟通世界的主要工具之一,它的普及改变了企业的经营方式和服务方式。在这 种情况下,基于j a v ae e ( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ) 平台的s t r u t s 、s p r i n g 、 h i b e r n a t e 构架的w e b 应用应运而生,它通过应用服务器端组件的形式,封装了 业务处理逻辑,提高了程序的可重用性和可扩展性。 本课题旨在对基于j a v ae e 平台的s t r u t s 、s p r i n g 、h i b e r n a t e 构架的w e b 应 用技术进行深入研究,将其应用于远程诊断系统之中。设计一个具备分布式网 络体系结构和开放式,并且能满足远程诊断系统需求的系统。因此,该课题具 有一定的研究价值和实用价值。 1 2 课题的来源 本课题来源于江西电信系统集成公司与中兴软件公司合作项目远程诊 断。这套临床医学专家辅助诊断系统从市场调研、策划、开发,历经一年时间 完成,目前南昌大学第一附属医院己投入使用。 1 3 课题的研究内容和创新点 1 3 1 课题的研究内容 本课题的软件是基于j a v ae e 平台下开发的,因此采用j a v a 作为开发语言, 数据库管理工具采用的是s q ls e r v e r 2 0 0 0 ,w e b 服务器采用a p a c h et o m c a t , e c l i p s e 3 0 为主要开发工具。开发出来的是一套安全,高效、基于s t r u t s 、s p r i n g 、 h i b e r n a t e 架构的b s 模式的远程诊断系统。该课题研究的主要内容包括: ( 1 ) 远程诊断系统的业务流程; ( 2 ) 运用表示层开发框架s t r u t s 实现系统的界面; ( 3 ) 运用逻辑层开发框架s p r i n g 实现系统的业务逻辑与功能; 第一章引言 ( 4 ) 运用数据持久层开发框架h i b e r n a t e 实现系统与数据库之间的对象关 系映射以及数据库事务处理; ( 5 ) 基于j a v ae e 平台下s t r u t s 、s p r i n g 、h i b e r n a t e 架构的应用与研究; ( 6 ) 分布式w 曲应用程序的开发。 1 3 2 课题的创新点 本课题提出s s h ( s t r u t s + s p r i n g + h i b e m a t e ) 的架构实现j a v ae e 平台的分布式 多层体系结构,结合三者的优势为一体,可以充分发挥b s 系统的优势,使远 程诊断系统达到最优化的实现。 1 4 论文组织结构 论文结构安排如下: 第一章:引言。介绍论文的研究意义、研究背景,研究内容及其创新点。 第二章:j a v ae e 平台概述。本章主要介绍j a v ae e 平台的多层体系结构。 第三章:基于s s h 的w e b 开发框架。通过综合分析s t r u t s 、s p r i n g 与h i b e r n a t e 各自的优点与不足,提出将这三种框架有效整合的方案,并对整合后的框架的 工作流程和优点做了说明。 第四章:基于j a v ae e 多层结构的远程诊断系统实现。从系统分析、系统设 计、系统实现三个过程详细说明整个研究过程。 第五章:总结与后续改进。概括总结作者在本文所做的工作及本文的创新, 并指出课题的后续改进。 2 第二章j a v a e e 平台概述 第二章j a v ae e 平台概述 2 1 引言 j a v a 是s u nm i e r o s y s t e m s 公司在1 9 9 5 年推出的一套程序语言兼平台。s u n 公司在j d k1 2 版本后将j a v a 改名为j a v a2 ,并重新定义了j a v a 技术的架构, 将其组织成3 个版本,每个版本标准针对计算机产业中的下述特定领域:【l 】 ( 1 ) j a v a2 企业版( j 2 e e ,j a v a2p l a t f o r n l ,e n t e r p r i s ee d i t i o n ) ,用于企业服 务器端的解决方案,其类库除了包含有j a v a 语言的所有特性外还包含针对企业 计算的各种编程接口和规范,如s c r v l e t 、j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ,i a v a 数据库连接) 、e j b ( e n t e r p r i s ej a v a b e a n s ,企业级j a v a b e a n ) 、r m i ( r e m o t em e t h o d i n v o c a t i o n ,远程方法调用) 、j n d i ( j a v a n a m i n ga n dd i r e c t o r yi n t e r f a c e ,j a v a 命 名和目录接口) 等。j 2 e e 针对的设备主要是后端服务器程序,它也使用j a v a 虚 拟机运行。 ( 2 ) j a v a2 标准版( j 2 s e ,j a v a2p l a t f o i t a ,s t a n d a r de d i t i o n ) ,用于常见的 桌面程序,它使用j a v a 虚拟机来提高性能,其j a v a 类库包含j a v a 语言的全部特 性,针对的设备主要是台式机。 ( 3 ) j a v a2 微型版( j 2 m e ,j a v a2p l a t f o r m ,m i c r oe d i t i o n ) ,针对的主要是 嵌入式和移动类设备。这些设备内存和处理器受到很大限制,其类库比较小一 些,相对于j 2 s e 的类库来说作了一些剪裁,同时也增加了一些新的特性,其虚 拟机也针对相应的设备作了更改。 j 2 e e 为j a v a 企业开发提供了一幅清晰的全景,各项分支技术在这个领域中 的地位和作用得到了客观、准确的定义。它使用“容器”和“组件”等概念描绘了 j a v a 企业系统的一般架构,明确地划分了中间件厂商和应用开发者的职责。1 2 】 2 0 0 5 年,s u n 公司将j a v a 平台改名为j a v a5 ,j 2 e e 平台也改名为j a v ae e p l a t f o r m 。为此在本文中将使用j a v ae e 作为名称。 2 2j a v ae e 多层体系结构 j a v ae e 是s u n 公司推出的一个开发分布式企业应用系统的平台,它的出 现使得企业的软件开发重新获得了新的生命力。j a v a e e 是一种利用j a v a 语言的 3 第二章j a v a e e 平台概述 标准体系结构定义,利用它可以更为方便地在中间层加速分布式部署。在企业 开发工作中,开发者将不必担心运行关键商务应用所需的“管道工程”,从而可以 集中精力重视业务逻辑的设计和应用的表示。因此,尤其适用用于创建基于商 务服务器和客户应用的程序。1 3 j 另外j a v a e e 使用多层的分布式应用模型,应用逻辑按功能划分为组件,各 个应用组件根据他们所在的层分布在不同的机器上,使得应用开发更加灵活, 层次之间不进行直接的联系,因而对于早期开发中的修改维护等困难是很好的 改进方法。如图2 1 所示: 测览器w e b 服务器e , i b 容器 1 卜、 圄 r - rl卜 、_ ny h 枷i ljl八 ny 厂一 旧 曰 i 即hi 、h ,_ a p p c _ f l卜 f b l 令 p c i l e _ t 、一犷叫 l j 犷 目 1 卜 犷叫 a p p i k _ i i 帽旧旧 a k i tc o a m l a d 剖吲 图2 1j a v ae e 多层分布式模型框图 从图2 - 1 中可以看到,尽管j a v ae e 支持四个不同的层,但一般情况下,我 们将客户层和w e b 表示层归为一层,因此把j a v ae e 应用视为三层结构的应用, 即表示层、业务逻辑层和数据持久层。 三层应用结构要求层与层之间必须有明确的接口定义,从而保证多层之间 可以协作完成应用任务。业务层作为表现层和数据层的中间服务器,必须保证 所有的业务逻辑被正确处理。三层结构具有以下优点: ( 1 ) 表示和功能相分离 将可视表示和功能行为相分离的重要性体现在两个方面。首先,可以很容 4 第二章j a v a e e 平台概述 易地在经过测试的与功能相隔离的状态下修改可视表示。其次,通过这种分离, 客户机需要执行描述任务和向服务器发出请求,不需要很强的硬件处理能力。 对于网络应用,复杂的功能一般都在服务器上实现,允许用户使用w e b 浏览器 和主机服务器获得功能丰富的可视访问。事实上,这种方式现在正在迅速的流 行中。 ( 2 ) 可以单独优化各个层,硬件系统结构具有灵活性 任何开发或优化过应用程序的开发人员都会对所发现的性能瓶颈感到惊 讶。一个问题解决之后,新的问题又会出现。对于分布式系统也是一样。每个 子系统都有其各自的特殊问题,都有自己的优化解决方案。对于三层体系结构, 可以隔离各个子系统并分别进行适当的调整和优化。并且三层结构系统对于各 个层可以选择与其处理特性相适应的硬件。这是一个与系统可缩放性直接相关 的问题。 关键在于随着业务的不断增多,用户数和数据量不断扩大,我们只需要在 网络中相应相应地增加中间逻辑业务层的服务器数目,就可以解决问题。清晰、 合理地分割三层结构并使其独立,可以使系统变更更加简单。 ( 3 ) 开发过程的有限并存 单层应用系统几乎没有任何机会可以并行开发,而且多个开发团队有可能 在开发应用系统上的不同部分出现问题,因为各个团队之间的相互依赖过多, 影响开发速度。 两层结构的应用系统在一定程度上改进了这种状况。一般情况下业务逻辑 处理功能在两层体系中一般实现为存储过程和触发器。客户机开发团队在开始 阶段可以与服务器开发团队相隔离,使用应用程序替代服务器。但很快就会陷 入僵局,需要等待应用程序不能返回感兴趣的结果。另一方面,服务器软件也 只有当具有多个功能的客户机开始访问数据库而发出请求时才能进行测试和提 供服务。 对于三层体系机构来说情况会好点。首先,各层可以选择各自最适合的开 发语言。其次,随着三层体系结构的普及,不同的开发团队彼此之间不必了解 各自的工作。如果各层之间通过诸如h r r p 协议和x m l 这样的开发格式,客户 机应用程序可以直接为现有的业务应用服务器开发,不必与服务器端软件开发 团队进行沟通。同样,数据库管理员可以在不影响客户端正常运行的情况下升 级数据库。关键是各层之间具有明确的接口。 5 第二章j a v a e e 平台概述 ( 4 ) 功能模块的重用 面向对象的程序设计试图解决软件重用问题,但是要求源代码层次上的重 用。提供了源代码之后,当接口定义不明确时,往往需要修改软件,这样就没 有重视接口设计的问题。 三层结构软件无论是采用c o m 组件,还是c o r b a 或者e j b 标准中间件, 在重用上已经前进了很多。程序设计人员在接口设计上不需花费过多时间,同 时必须考虑其他程序如何使用这些组件和中间件。 ( 5 ) 严密的安全管理 越关键的应用,用户的识别和存取权限设定愈加重要。在三层体系中,识 别用户的机构是按层来构筑的,对应用和数据的存取权限也可以按层进行设定。 即使外部的入侵者突破了表现层的安全防线,若在业务层中备有另外的安全措 施,系统也可以阻止入侵者进入其他部分。 2 2 1 客户层( c l i e n tt i e n j a v a e e 应用可以是基于w e b 的,也可以是不基于w e b 的。 在一个基于w e b 的j a v ae e 应用中,用户的浏览器在客户层中运行,并从 一个w e b 服务器上下载w e b 层的静态h t m l 页面或者由j s p 、s e r v l e t s 生成的 动态h t m l 页面。在一个不基于w e b 的j a v ae e 应用程序中,不是运行在h t m l 页面中,而是运行在其它一些基于网络的系统中的a p p l e t 程序,在客户层中运 行,并在不经过w e b 层的情况下访问e j b 。 4 1 5 1 2 2 2w e b 层( w e bt i e n j a v a e e 的w e b 组件可以由j s p 页面、基于w 曲的a p p l e t s 以及显示h t m l 页面的s e r v l e t s 组成。就象客户层一样,w e b 层可能包含一个j a v a b e a n 来管理 用户输入,并将输入发送给业务层中运行的e j b 来处理。1 6 】 2 2 3 业务层u s s i n e s st i e r ) 作为满足某个特定业务领域( 比如银行、零售或金融业务) 需要的逻辑业 务代码由运行在业务层的e j b 来执行。一个e j b 从客户程序处接收数据,对数 据进行处理( 如果需要) ,再将数据发送到企业信息系统层存储。一个e j b 从存 储中检索数据,并将数据送回客户程序。运行在业务层的e j b 依赖于容器来为 诸如事务、生命期、状态管理、多线程及资源缓冲池等十分复杂的系统级功能。 6 第二章j a v a e e 平台概述 业务层也称e j b 层。【刀 业务层和w e b 层一起构成了j a v a e e 应用的中间层。 2 2 4 企业信息层( e n t e r p r i s ei n f o r m a t i o nt i e n 企业信息系统层运行企业信息系统软件,这层包括企业基础设施系统,例 如企业资源计划( e r p ) 、大型机事务处理( m a i n f r a m et r a n s a c t i o np r o c e s s i n g ) 、数 据库系统及其它遗留信息系统( l e g a c yi n f o r m a t i o ns y s t e m s ) 。j a v ae e 应用组件因 为某种原因( 例如访问数据库) 可能需要访问企业信息系统。j a v ae e 平台的未 来版本将支持c o n n e c t o r 架构,该架构是将j a v ae e 平台连接到企业信息系统上 的一个标准a p i 。i s 】【9 】 2 3 j a v a e e 应用组件 j a v a e e 应用程序是由组件构成的。这些组件是具有独立功能的软件单元, 它们通过相关的类和文件组装成j a v ae e 应用程序,并与其他组件交互。j a v ae e 规范中按照层面上定义了以下组件: 2 3 1 客户组件 客户层组件包括:a p p l e t 、a p p l i c a n tc l i e n t ( 应用程序客户端) 和浏览器等。 a p p l e t 是嵌在浏览器中的一种轻量级客户端,一般而言,仅当使用w e b 页 面无法充分地表现数据或应用界面的时候才使用它。 a p p l i c a t i o nc l i e n t 相对于a p p l e t 而言是一种较重量级的客户端,它能够使用 j a v a e e 的大多数服务和a p i 。应用程序可以是基于w e b 方式的,也可以是基于 传统方式的。与a p p l e t 不同的是,客户应用程序一般需要在客户端进行安装, 而a p p l e t 是在w e b 上下载,无需专门安装。一般来说,客户应用程序适合在企 业内部网中使用,a p p l e t 适合在w w w 上使用。 w e b 客户端一般指得就是w e b 浏览器,它以标准格式显示从服务器传递来 的网页。 2 3 2 w e b 组件 w e b 层组件包括s e r v l e t 、j s p 、可选的j a v a b e a n 和j a v as e r v e rp a g e ss t a n d a r d t a gl i b r a r y ( j s t l ) 。w e b 组件与基于w 曲的客户端( 如w e b 浏览器) 进行交互。 7 第二章j a v a e e 平台概述 j s p 和s e r v l e _ t 都是w e b 服务器的功能扩展,接受w e b 请求,返回动态的w 曲 页面。w e b 容器中的组件可使用e j b 容器中的组件完成复杂的商务逻辑。 s e l e t 是j a v a 平台上的c g i ( c o m m o ng a t e w a yi n t e r f a c e ) 技术。s e r v l e t 在服 务器端运行,动态地产生w e b 页面。与传统的c g i 和许多类似c g i 的技术相比, j a v as e r v l e t 具有更高的效率并更容易使用。 j s p 是一种实现普通静态h t m l 和动态页面输出混合编码的技术。在运行 时态,j s p 将会被首先转换成s e r v l e t ,并以s e r v l e t 的形态编译运行,因此它的 效率和功能与s e r v l e t 相比没有差别,一样具有很高的效率。 j s t l 将常用的j s p 功能封装成为简单的标签( t a g ) 。网页是由各种有标签的 文字组成,各种标签( 如表格、字体) 的写法基本固定。j s t l 采用相似的概念 设计j s p 。j s t l 目前提供基本的j s p 功能,但仍在不断扩充中。 2 3 3 业务组件 业务层组件也就是通常所说的e j b 组件,在这个组件里需要定制业务逻辑。 e j b 规范定义了一个开发和部署分布式商务逻辑的框架,以简化企业级应用的开 发。所有的e j b 都需要配置到e j b 服务器中,e j b 服务器作为容器和低层平台 的桥梁管理着e j b 容器,并向该容器提供访问系统服务的能力。所有的e j b 实 例都运行在e j b 容器中,e j b 容器提供了系统级的服务,控制了e j b 的生命周 期。e j b 规范中定义了三种不同类型的e j b :会话b e a n 、实体b e a n 和消息驱动 b e a n 。f l o l 8 第三章s s h 开发框架 第三章s s h 开发框架 在本文的第二章中论述了j a v ae e 的多层体系结构及其优点,通常情况下, 我们把j a v ae e 应用视为三层结构的应用,即表示层、业务逻辑层和数据持久层。 目前,在j a v ae e 应用不同层面上的开放,出现了一些非常优秀的开发框架,如: 表示层上有s t r u t s ,业务逻辑层上s p r i n g ,数据持久层上有h i b e r n a t e 。本章主要 对s t r u t s 、s p r i n g 、h i b e r n a t e 框架分别进行了深入研究,并论述s s h 框架是如何 整合,以及s t r u t s 、s p r i n g 、h i b e r n a t e 在各层之间如何协同工作的。 3 1 表示层s t r u t s 框架 3 1 1s t r u t s 简介 随着s t r u t s 技术的流行,国外大多数公司已不再单纯的使用 j s p + s e r v l e t + j a v a b e a n 来开发自己的项目,而是首先选择一个优秀的框架,而s t r u t s 是其最好的选择。随着s t r u t s 技术的版本升级,技术不断完善和可扩展性增强等, 使其功能越来越强大。 s t r u t s 是一个为开发基于模型( m o d e l 卜视图( v i e w 卜控制器 ( c o n t r o l l e r ) ( m v c ) 模式的应用架构的开源框架,是利用j a v as e r v l e t 和j s p 构建 w e b 应用的一项非常有用的技术。m v c 模式最重要的思想就是业务代码与视图 代码分离。能有效地表达系统设计架构,降低了系统复杂度与维护难度。而s t r u t s 就是基于j a v a e e 的w e b 形式m v c 模式实现。 3 1 - 2s t r u t sm v c 体系结构 s t r u t s 的体系结构实现了m v c 设计模式的概念,它将这些概念映射到w e b 应用程序的组件和概念中。如图3 1 显示了s t r u t s 框架的体系结构响应客户的请 求时,各部分工作的原理,从m v c 的角度体现了s t r u t s 框架中各种组件的功能 角色。【l l 】【1 2 】 9 第三章s s h 开发框架 图3 1s t r u t s 框架体系结构 从上图中我们可以知道,s t r u t s 的体系结构包括模型( m o d e l ) ,视图( v i e w ) 和 控制器( c o n t r o l l e r ) 三部分。 我们可以从m v c 角度来看看s t r u t s 的体系结构与工作原理: 1 3 - 1 6 ( 1 ) 模型( m o d e l l 模型是表示应用程序的状态和业务逻辑。对于大型应用来说,业务逻辑常 由j a v a b e a n 或e j b 组件来实现。 在s t r u t s 的体系结构中,模型分为两个部分:系统的内部状态和可以改变状 态的操作( 事务逻辑) 。内部状态通常由一组a c t i o n f o r mb e a n 表示。根据设计或 应用程序复杂度的不同,这些b e a n 可以是自包含的并具有持续的状态,或只在 需要时才获得数据( 从某个数据库) 。大型应用程序通常在方法内部封装事务逻 辑( 操作) ,这些方法可以被拥有状态信息的j a v a b e a n 调用。比如在一个大型的 商场管理信息系统中的购物车b e a n ,它拥有用户购买商品的信息,可能还有 c h e c k o u t ( ) 方法用来检查用户的信用卡,并向仓库发定货信息。在运用时一般将 事务逻辑( 要做什么) 与a c t i o n 类所扮演的角色( 决定做什么) 分开。 ( 2 ) 视图( v i e w ) 视图是用户看到并与之交互的界面,s t r u t s 应用中的视图部分是通过j s p 技 术实现的。在这些j s p 文件中没有业务逻辑和模型信息,只有标签。 s t r u t s 提供了自定义的标签库可以使用,通过这些自定义标签可以非常好地 和系统的m o d e l 部分交互,通过使用这些自定义标签创建的j s p 表单,可以实 现和m o d e l 部分中的a c t i o n f 0 1 3 1 1 1 的映射,这有利于分开表现逻辑和程序逻辑, 1 0 第三章s s h 开发框架 完成对用户数据的封装,同时这些自定义标记还提供了像模板定制等多种显示 功能。 ( 3 ) 控制器( c o n t r o l l e n 控制器的作用是从客户端接收请求,并且选择执行相应的业务逻辑,然后 把响应结果送回到客户端。 在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 s e r v l e t 是 s t r u t s 框架的核心组件,它在m v c 模型中扮演中央控制器的角色。a c t i o n s e r v l e t 主要负责接收h 1 v r p 请求信息,根据配置文件s t r u t s - e o n f i g x m l 的配置信息,把 请求转发给适当的a c t i o n 对象。如果a c t i o n 对象不存在,a c f i o n s e r v l e t 会先创 建这个a c t i o n 对象。 a c t i o n 来负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流 程。对于小型简单的应用,a c t i o n 类本身也可以完成一些实际的业务逻辑。对于 大型应用,a c t i o n 充当用户请求和业务逻辑处理之间的适配器,其功能就是将请 求与业务逻辑分开,a c t i o n 根据用户请求调用相关的业务逻辑组件。业务逻辑由 j a v a b e a n 或e j b 来完成,a c t i o n 类侧重于控制应用程序的流程,而不是实现应 用程序的逻辑。通过将业务逻辑放在单独的j a v a 包或e j b 中,可以提高应用程 序的灵活性和可重用性。 ( 4 ) 配置文件s t r u t s - c o n f i g x m l s t r u t s 的配置文件s t r u t s c o n f i g x m l 是一个特定的x m l 文件,它存储了描述 用户请求路径和a c t i o n 映射关系的配置信息,这些信息决定了a c t i o n s e r v l e ! t 把 用户请求转发给哪个a c t i o n 对象。这些配置信息在系统启动的时候被读入内存, 供s t r u t s 在运行期间使用。 3 1 3s t r u t s 组件 在s t r u t s 框架中包含以下一些组件,如表3 1 所示。【l 7 】【1 3 】 表3 1s t r u t s 组件表 组件角色 a c t i o n s e r v l e t 控制器 a c t i o n c l a s s 包含事务逻辑 a c t i o n f o r m 显示模块数据 a c t i o n m a p p i n g 帮助控制器将i 寿求映射到操作 a c t i o n f o r w a r d j l j 米指示操作转移的对象 a c t i o n e n 0 r 川来存储和同收错误 s t r u t s 标记库 可以减轻开发显示层次的- 作 第三章s s h 开发框架 ( 1 ) s t r u t s 配置文件 在s t r u t s 体系中各种组件的结合是依靠配置文件s t r u t s e o r t f i g x m l 完成的, 具体有以下几种: ( a ) 全局转发:全局转发用在w e b 应用程序中,通过j s p 之间的创建逻辑名 称映射,可以代替j s p 中复杂的编码名称。 ( b ) 配置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 对象帮助进行框架内部的流程控 制,它们可将请求u r i ( u n i f o r mr e s o u r c el o c a t o r ) 映射到a c t i o n 类,并且将a c t i o n 类与a c t i o n f o r mb e a n 相关联。 ( c ) 配置a c t i o n f o r mb e a n :a c t i o n s e r v l e t 使用a c t i o n f o r m b e a n 来保存请求 的参数,这些b e a n 的属性名称与h r r p 请求参数中的名称相对应,控制器将请 求参数传递到a c t i o l l f o 册b e a n 的实例,然后将这个实例传送到a c t i o n 类。 ( d ) 配置j d b c 数据源:j d b c 数据源可以在配置文件中利用 元素来定义,同时在配置文件中可以配置多个数据源,实现业务逻辑对后台数 据系统的访问。 ( 2 ) a c t i o n s e r v l e t 类 框架中的控制器组件是由s t r u t s 的o r g a p a c h e s t r u t s a c t i o n a c t i o n s e r v l e t 类来 实现的,这个类是j a v a x s e r v l e t h t t p h t t p s e r v l e t 类的扩展。在基于s t r u t s 的应用 程序中,需要执行事物逻辑的表单和超级连接会被提交到一个请求u r l ,它映 射到一个s e r v l e t 类,这个s e r v l e t 类将会有一个单一的实例,所有会改变用户交 互状态的请求都会由这个实例完成接受和处理。 控制器在处理一个请求时会完成以下基本功能: ( a ) 接受客户端的h t t p 请求; ( b ) 根据客户端的u r i 请求映射到一个相应的a c t i o n 类,如果这是此类收 到的第一个请求,将初始化实例并缓存; ( c ) 创建或发现一个a “0 1 1 f o mb e a n 实例( 看配置文件是否定义) ,然后将 请求过程移植到b e a n ; ( d ) 调用a c t i o n 实例的p e r f o r m ( ) 方法,并将a c t i o f o r m b e a n ,a c t i o nm a p p i n g 对象,r e q u e s t 和r e s p o n s e 对象传给它。 a c t i o n s e r v l e t 类是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 f i o l l f o r m 和a c t i o n f o n v a r d , 由 s t r u t s c o n f i g x m l 配置文件配置相关信息。在创建w e b 项目时,可以扩展a c t i o n 1 2 第三章s s h 开发框架 和a c t i o n _ f o r m 来解决一些特定的问题,文件s t r u t s - c o n f i g x m l 就指示a c t i o n s e r v l e t 如何使用这些扩展的类。 ( 3 ) a t i o n m a p p i n g 类 将特定请求映射到特定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 s e r v e l t 将a c t i o n m a p p i n g 传送到a c t i o n 类的p e r f o r m ( ) 方法,a c t i o n 将使 用a c t i o n m a p p i n g 的f m d f o r w a x d ( ) 方法,此方法返回一个指定名称的 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 f o r w a r d ,就返回一个n u l l 。 ( 4 ) a c t i o n 类 a c t i o n 类真正实现应用程序的事务逻辑,它们负责处理请求。在收到请求后, 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 的一个 实例,调用a c t i o n 的p e r f o r m ( ) 方法。 如果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 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 m a p p i n g 找到本地转发,然后获得并设置 a c t i o n m a p p i n g 属性。根据s e r v l e t 的环境和被覆盖的p e r f o r m ( ) 方法的签名, a c t i o n s e r v l e t 也会传送s e r v l e t r e q u e s t 对象或h t t p s e r v l e t r e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单杠考试题及答案
- 中外儿童文学经典阅读与写作知到智慧树答案
- 家庭医生签约服务考核试题(附答案)
- 呼叫中心服务员中级工模拟练习题(含答案)
- 中西医结合内科学进展知到智慧树答案
- 中西医临床内科学知到智慧树答案
- 2025版挖掘机销售与售后服务合同范本
- 2025年度保密及竞业禁止协议书-针对航空制造业
- 2025年度山林承包经营权转让及绿化养护服务合同
- 2025年度电信固网运营服务协议书标准范本
- 水泥路施工安全知识培训课件
- 2025年秋季学期(统编版)二年级上册语文教学工作计划及教学进度表
- 2025年福建省厦门市【辅警协警】笔试真题(含答案)
- (2025年标准)委托他人要账协议书
- 2025-2030中国青少年无人机教育课程体系构建与创新能力培养研究
- 2025年金融消费者权益保护考试题与答案
- 中学2025年秋季第一学期开学工作方案
- 《跨越百年的美丽》课件 中职语文上册
- GB 11122-2025柴油机油
- 2025年河南开封产城融合投资集团有限公司招聘考试笔试试题(含答案)
- 大便常规检查
评论
0/150
提交评论