




已阅读5页,还剩53页未读, 继续免费阅读
(信号与信息处理专业论文)基于jsf和hibernate的web应用研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学硕士学位论文 摘要 随着i n t e r a c t 技术和企业信息化建设的发展,构建基于w e b 的应用系统的 需求越来越复杂,开发周期要求越来越短,同时对系统的稳定性、扩展性、交互 性和可维护性要求也越来越高。但在实际的系统开发中,每个项目都需要根据 实际应用寻找一个新的解决方案,这种方式即费时又费力,无法满足企业信息 化建设发展的要求。因此,在开发w e b 应用系统的过程中,为了提高开发的开 发效率,同时考虑到应用系统的灵活性、安全性和实用性,就需要有一种好的 设计模式,一个好的可复用的系统框架设计作为一种可行的方案来解决这一常 见的问题。设计模式描述了通用的、简单的和可重用的解决方案的核心,在基 于j a v a e e 体系的应用系统的开发过程中,正确的理解和使用设计模式,能缩 短系统的开发时间,提高系统的开发效率,起到了事半功倍的功效。 针对以上问题,论文结合应用系统多层次体系结构发展的现状,对j s f 框 架和h i b e r n a t e 框架进行深入分析。j s f 是一种基于m v c 设计模式的w e bu i 框架,在系统开发中应用j s f ,实现了表示层与业务逻辑层的分离,提高了系 统的开发效率。而h i b e r n a t e 作为一个面向j a v a 环境的对象关系数据库映射的 工具。它提供的o r m 机制可以把一个对象映射到多个数据库表,可以实现多 种实体关联关系的映射,可以实现继承映射;它提供的查询语言h q l 实现了 o r m 的多态连接查询和动态查询。 本文首先阐述了m v c 设计模式和j a v a e e ,在此基础上,对j s f 框架和 h i b e r n a t e 框架进行了深入的研究,重点给出了集成框架中的u i 组件、事件模 型和数据库映射,并对集成框架开发w e b 应用中遇到的问题进行了分析,给出 了解决方法:最后应用j s f 和h i b e r n a t e 集成框架实现了d e s i g n a n y w h e r e 系统 的w e b 平台。实践表明,应用j s f 和h i b e r n a t e 框架可以极大地提高系统开发 效率,同时满足系统可扩展性、可维护性和高交互性的要求。 关键词:j a v a e e ;m v c 模式;j s f ;h i b e r n a t e 武汉理工大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fi n t e r n e ta n de n t e r p r i s ei n f o r m a t i o nc o n s t r u c t i o n , t h e r e q u i r e m e n to fw e b - b a s e da p p l i c a t i o ns y s t e m sh a v eb e c o m em o r ec o m p l e x ,t h e d e v e l o p m e n tc y c l e i s i n c r e a s i n g l ys h o r t e r s y s t e ms c a l a b i l i t y , m a i n t a i n a b i l i 坝 s t a b i l i t ya n da l t e r n a t i o nh a v eb e c o m em o r es o p h i s t i c a t e b u te v e r yd i s t i n c tc a s ei n f a c tu s u a l l yn e e d sad i s t i n c ts e t t l e m e n t , w h i c hm e a n st o oh e a v yp r i c eo f t i m ea n d m o n e yt om e e tt h ei n f o r m a t i o n - b a s e dr e q u e s tf o ra l le n t e r p r i s e f o re f f i c i e n c y , c a t h o l i c i t y , s a f e t y , a n dp r a c t i c a b i l i t y , ab e t t e rd e s i g np a t t e r na n dar e u s a b l es y s t e m f r a m e w o r ka r ei m p e r a t i v et ow o ka sau n i v e r s a lt e m p l a t ei n e x p l o i t a t i o no f w e b - b a s e ds y s t e m s n ed e s i g nm o d ed e s c r i b e sa l l p u r p o s e , s i m p l ea n dr e u s a b l e s o l v i n gp l a n sc o r e , a n du n d e r s t a n d i n gc o r r e c t l ya n da p p l y i n gd e s i g nm o d ew i l lg e t t w i c et h er e s u l tw i t hh a l ft h ee f f o r tb a s i n go nj a v a e es y s t e m sa p p l y i n gs y s t e m i c d e v e l o p m e n t a f t e ri n v e s t i g a t i o n so fc u r r e n tn - t i e rs y s t e m sa sw e l la st h ej s fd e s i g nf r a m e w o r k a n dt h eh i b e r n a t ef r a m e w o r k , an e wn t i e rf r a m e w o r kt ob u i l dw e b - b a s e ds y s t e mi s b r o u g h tu pi nt h i sp a p e rb a s e do nt h em v cp a a e mt h e o r y i nt h ed e v e l o p m e n to f s y s t e m ,j s fm a k e st h ed i f f e r e n tr o l e so fv i e w - t i e ra n db u s i n e s sl o g i ct i e r , o n ei s m o d i f i e db u td o n te f f o r tt h eo t h e r , i no r d e rt oi n c r e a s et h ee f f i c i e n c yo fs y s t e m d e v e l o p m e n t t oh i b e r n a t e ,i ti sa no r m t o o lf o rj a v ae n v i r o n m e n t i tm a n a g e st h e m a p p i n gf r o mj a v ac l a s s e st od a t a b a s et a b l e sa n dt h eo p e r a t i o no fp e r s i s t e n to b j e c t s o r mo fh i b e r n a t ec a l lm a p p i n go n eo b j e c tt om a n yt a b l e s ,c a l lm a p p i n gs e v e r a l t y p e so fa s s o c i a t i o n sa n dc l a s si n h e r i t a n c e h i b e r n a t eq u e r yl a n g u a g er e a l i z e d p o l y m o r p h i ca s s o c i a t i o nq u e r ya n dd y n a m i cq u e r y f i r s t l y , t h i sp a p e rh a sas a m p l ei n t r o d u c t i o no fm v c a n dj a v a e ed e s i g np a t t e r n , a n db a s e so nt h a t ,i th a st h ei n - d e p t ha n a l y s i sf o rj s ff r a m e w o r ka n dh i b e r n a t e f r a m e w o r k aw e ba p p l i c a t i o ni n t e g r a t i o nf r a m e w o r km o d e lb a s e do nj s fa n d 。h i b e r n a t eh a sb e e na d v a n c e d t h ef o c u si su ic o m p o n e n t s ,e v e n tm o d e la n d d a t a b a s em a p p i n go ft h ei n t e g r a t i o nf r a m e w o r kh a v e b e e na n a l y s e d ,i t ss o l u t i o nh a v e 武汉理工大学硕士学位论文 b e e ng i v e n f i n a l l y , t h ew e bp a r to fd e s i g n a n y w h e r es y s t e ma sa ne x a m p l e ,t h i s p a p e rd i s c u s s e dt h ea p p l i c a t i o no fj s fa n dh i b e r n a t ei n t e g r a t i o nf r a m e w o r ki nt h e s y s t e m p r a c t i c es h o w st h a tt h ea p p l i c a t i o no fj s fa n dh i b e r n a t ef r a m e w o r kc a n i m p r o v e t h e e f f i c i e n c yo fw e bs y s t e m sd e v e l o p m e n t , w h i l em e e t i n gs y s t e m s c a l a b i l i t y 、m a i n t a i n a b i l i t ya n dh i g ha l t e r n a t i o nr e q u i r e m e n t s k e yw o r d s :j a v ae e ;m v cd e s i g np a t t e r n ;j s f ;h i b e r n a t e i 独创性声明 本人声明,所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 研究生签名:步日期鲤:型 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部内容, 可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 研究生签名:兰丝耋竺导师签名同期叫叫 武汉理工大学硕士学位论文 1 1 研究背景 第1 章引言 随着i n t e m e t 的快速发展和企业自身分布式信息处理的需求,w e b 应用受 到了越来越多的重视,企业纷纷开发适合自身业务的w e b 应用系统。由于w e b 系统的复杂度越来越高,系统往往是构建在企业己有系统之上的新应用,已有 系统往往呈现多样性,而且要求新应用能够不断的扩展来满足业务的变化,在 性能和安全性方面的要求也到了空前的地步。很多w e b 系统在设计和实施阶段 都采取了分层架构的方法,构建多层的w e b 应用将会提高系统的重用性、可扩 展性和可维护性。但是,在多层w e b 体系结构的设计中,普遍存在程序可用程 度低、维护工作繁琐、应变能力较弱等不足【1 1 ;同时,多层w e b 应用软件需要 面对复杂的网络环境。s u n 公司提出了j a v a e e ,它是一个能够构建复杂企业 应用并能满足扩展性、性能、安全性的解决方案。j a v a e e 将应用分为表示层、 w | c b 层、业务逻辑层和数据层,并且提供了j d b c 、j s p 、s e r v i a 、x m l 、e j b 、 j t a 、j d b c 、r m i 、j a v a m a i l 、j m x 、w 曲s e r v i c e s 、j s f 等多种技术支持各个 层组件的开发。为了使w e b 应用能够体现j a v a e e 分层架构和跨平台的优点, 实现w e b 应用的稳定性、可扩展性、可维护性和可重用性,如何开发和部署 w 如层和业务逻辑层的组件己经成为j a v a w e b 系统开发的首要问题。 使用j a v a 开发w e b 层组件经历了几个发展阶段1 2 1 ,一开始是使用s e r v l e t , 直接利用r e q u e s t 和r e s p o n s e 对象接收和响应客户端的请求。s e r v i a 的一个显著 缺点是需要在j a v a 代码中嵌入大量的标记语言( 如h t m l ) ,处理逻辑和显示逻 辑严重耦合,非常不利于程序的维护和界面的设计。基于这种情况,s u n 又发 展了j s p 技术,与s e r v l e t 正好相反,j s p 是在标记语言中嵌入j a v a 代码,但它 仍没有实现w e b 开发角色的分离,美工设计人员仍然要在一堆混杂脚本、标记 和j a v a 程序的代码中工作,不利于程序的维护。后来j s p 加入了t a b l i b r a r y 机制,鼓励开发人员使用自定义标签封装业务逻辑,j s p 页面尽可能只出现各 种标签。大量自定义j s p 标签的出现,并经过s u n 公司的标准化后,形成了 j s t l ( j a v as t a n d a r dt a b l i b r a r y ) 。j s t l 技术基本实现了页面逻辑和显示逻辑的弱 武汉理工大学硕士学位论文 耦合,方便了w e b 的各种开发人员。随着w e b 应用程序规模的不断扩大,现有 的j s t l 明显不能满足开发需求,并且复杂的业务操作和页面之间的处理流程 都需要开发者自己编写代码实现,这给开发带来了难以想象的困难,于是一些 中间件厂商开发出框架技术,比较流行的有j s f 、s t r u t s 、s p r i n g 框架等。这些 框架技术提供了w e b 应用程序的开发模板,开发人员只要配置好相应的参数就 可以完成对w e b 应用程序的开发。经过大量实践的检验,框架技术已经成为 w e b 系统开发最常用也是最重要的技术,几乎所有的w e b 应用程序的开发都要 采用一种或者几种框架技术。 j s f 0 a v as e r v e rf a c e s ) 是由s u n 公司倡导的技术,它的目的是为开发w e b 应用用户界面提供个标准框架。j s f 体现了m v c 模式把业务逻辑和表现逻辑 相分离的思想,是一种可以开发富有表现力的用户界面的w 曲应用服务器端技 术【3 j 。它提供了一种以组件为中心来开发j a v a w e b 用户界面的方法,从而简化 了开发。由于j s f 是通过j c p ( j a v ac o m m u n i t yp r o c e s s ) 匍 定的一种j a v a 标准, 因此开发工具供应商完全能够为j s f 提供易于使用的、高效的、可视化的开发 环境。 在业务逻辑层组件的开发过程中,对于数据库中实体的操作是通过j a v a 对 象来实现的,当实体对象在内存中创建后,它们不可能永远存在。最后,它们 要么从内存中清除,要么被持久化到数据库中1 4 1 。内存无法永久地保存数据, 因此必须对实体对象进行持久化。一旦实体对象被持久化,它们可以在应用再 次运行时被重新读入到内存,并重新构造出实体对象。那么就必须对数据库中 的关系表与j a v a 对象进行对象关系映射。 h i b e r n a t e 是一个面向j a v a 环境的对象与关系数据库映射工具,它是j a v a 应用和关系数据库之间的桥梁。h i b e r n a t e 提供了强大、高性能的对象到关系数 据库的持久化服务,它不仅仅管理j a v a 类到数据库表的映射,还提供数据查询 和获取数据的方法,可以大幅度减少开发时人工使用s q l 和j d b c 处理数据的 时间1 5 。h i b e r n a t e 不仅提供了从j a v a 类到数据表之间的映射机制,也提供了数 据查询和恢复机制。相对于使用j d b c 和s q l 手工操作数据库,h i b e r n a t e 可以 大大减少操作数据库的工作量。另外h i b e r n a t e 可以利用代理模式来简化载入类 的过程,这将大大减少利用s q l 从数据库提取数据的代码的编写量,从而节约 开发时间和开发成本。此外,它是一个开源的代码,提供开放的a p i ,使用者 也可能根据需要进行扩充。h i b e r n a t e 可以和多种w e b 服务器或者应用服务器良 2 武汉理工大学硕士学位论文 好集成,如今己经支持几乎所有的流行数据库服务器嘲。 1 2 研究意义 目前,有大量的j a v aw e b 框架可用。有些框架,比如s t r u t s 和w e b w o r k , 有助与解决表单处理和其他问题,比如遵循模型2 、集成数据源以及通过x m l 配置文件集中控制应用的所有资源。这些基础框架都提供了丰富的基础设施, 但是都没有屏蔽基本的h 丌p 请求响应处理的复杂性。而且,这些框架用户界 面表现能力差,很难满足快速高效的开发w e b 层组件的需求。j s f 框架技术具 有良好定义的请求处理生命周期和丰富的组件层次结构,目的在于推动基于 j a v a 的w e b 用户界面开发的简易性。j s f 可重用、可扩展、基于组件的用户界 面框架,在快速开发工具的支持下,可以通过拖放组件的方式对w e b 用户界面 进行可视化编辑,将用户界面上的组件与一个数据源绑定,并将客户端用户界 面产生的事件交给服务器端处理,从而大大降低基于j a v a 的w e b 应用的开发难 度,提高开发效率【7 】。 j a v a 对于业务逻辑中模型组件的操作通常通过j a v a 类实现,同时需要对象 关系映射用来把对象模型表示的类映射到基于s q l 的关系型数据库中去。 j d b c 是访问关系数据库的最原始、最直接的方法。这种方式的优点是运行效 率高,缺点是在j a v a 程序中嵌入大量的s q l 语句,使得项目难以维护。h i b e r n a t e 是对j d b c 的轻量级的封装,可以应用在任何j d b c 场合。在具体的项目中, h i b e r n a t e 还能和众多的主流框架集成。 集成j s f 框架和h i b e r n a t e 框架既能实现w e ;b 层页面代码和功能代码的分 离,又保证了在业务逻辑层有良好的对象关系映射机制实现数据库的操作,对 于w e b 应用系统的开发有以下优点【9 1 : ( 1 ) 实现了程序员和网页设计人员的分工。j s f 框架为网页设计人员提供一 套标准的u i 组件,在工具的支持下,可以通过拖放,简单地添加到网页上,通 过设置某些显示属性来满足视觉要求。 ( 2 ) 实现了用户界面到业务逻辑的直接映射。h r r p 请求需要经历解码、类 转换、有效性验证、状态保存、数据更新等环节,处理这些环节的所有细节, 对程序员来说是沉重的负担。在j s f 下,这些工作的很大一部分都由框架承担, 在程序员看来,这个过程是透明的,用户界面端的h t t p 请求可以直接映射到 3 武汉理工大学硕士学位论文 后端的一个事件处理例程,j s f 起到了承前启后的作用。 ( 3 ) 实现了系统的可重用性、可扩展性。j s f 和h i b e r n a t e 框架都是开放体系, 利用j s f 和h i b e r n a t e 开发的组件也能够被其他的应用程序调用,并且用户完全 可以根据需求定制自己的用户界面组件、事件处理器、数据校验和转换组件等, 这些组件和标准组件一样是可重用的 ( 4 ) 实现了系统的稳定性、可维护性。j s f 和h i b e r n a t e 技术是对于j s p 、 s e r v l e t 、j s t l 、j d b c 等技术的扩充,所以通过j s f 和h i b e r n a t e 构造的应用程 序能够在j a v a e e 应用服务器中良好运行,并且它们是通过标准的配置文件来 进行进行应用程序的部署,增加了程序的可维护性。 1 3 论文结构 第一章引言,简要阐述了研究背景,以及研究意义和论文组织结构。第 二章阐述了m v c 设计模式、j a v a e e 的体系架构以及m v c 模式在j a v a e e 平 台中的应用。第三章探讨了j s f 框架技术。第四章详细地阐述了h i b e r n a t e 的体 系结构、接口及查询机制。第五章是讨论j s f 框架和h i b e r n a t e 技术集成架构模 型。第六章阐述了d o s i g n a n y w h c r e 系统w e b 部分设计。第七章阐述了基于j s f 框架和h i b e r n a t e 框架技术的d c s i g n a n y w h e r e 系统w e b 部分实现。第八章对全 文做了总结。 4 武汉理工大学硕士学位论文 第2 章m v c 设计模式与儿w a e e m v c 是m o d e l y e w c o n t r o l l e r 的简称,即模型视图控制器。m v c 是x e r o x p a r c 在2 0 世纪8 0 年代为编程语言s m a t t t a l k - 8 0 发明的一种软件设计模式,至 今已被广泛使用,并成为s u n 公司j a v a e e 平台的设计模式,收到越来越多的 w e b 开发者的欢迎。j a v a e e 是s u n 公司提出的一种分布式企业级w e b 应用开 发的技术架构。j a v a e e 平台定义了开发多层企业级应用的标准,通过基于标 准的模块化组件、通过为这些组件提供一整套服务、通过自动处理许多企业应 用的细节而免去了复杂的编程,从而简化了企业级应用的开发。 2 。1m v c 设计模式 m v c 强制性地把应用程序的输入、处理和输出分开。m v c 把应用程序分成 三个核心模块:视图、控制器和模型,它们分别担负不同的任务。图2 1 显示 了这几个模块各自的功能以及它们的相互关系【舛。 方法调用 事件 m v c 设计模式 5 武汉理工大学硕士学位论文 ( 1 ) 视图:视图是用户看到并与之交互的界面。视图向用户显示相关的数据, 并能接收用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向 模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件, 从而对用户界面进行同步更新。 ( 2 ) 控制器:控制器接受用户的输入并调用模型和视图去完成用户的需求。 当w e b 用户单击w e b 页面中的提交按钮来发送h t m l 表单时,控制器接收请 求并调用相应的模型组件去处理请求。然后调用相应的视图来显示模型返回的 数据。 ( 3 ) 模型:模型是应用程序的主体部分。模型表示业务数据和业务逻辑。一 个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提 高了应用的可重用性。 ( 4 ) m v c 处理过程:首先控制器接收用户的请求,并决定应该调用哪个模 型来进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据; 最后控制器调用相应的视图来格式化模型返回的数据,并通过视图早现给用户。 ( 5 ) m v c 的优点:在最初的j s p 网页中,像数据库查询语句这样的数据层 代码和像h t m l 这样的表示层代码混在一起。经验比较丰富的开发者会将数据 从表示层分离开来,但这通常不是很容易做到的,它需要精心地计划和不断地 尝试。m v c 从根本上强制性地将它们分开。尽管构造m v c 应用程序需要一些 额外的工作,但是它给我们带来的好处是毋庸置疑的。首先,多个视图能共享 一个模型。如今,同一个w e b 应用程序会提供多种用户界面,例如用户希望既 能通过浏览器来收发电子邮件,还希望通过手机来访问电子邮箱,这就要求w e b 网站同时提供i n t e r n e t 界面和w a p 界面。在m v c 设计模式中,模型响应用户 请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和 表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的可重 用性。其次,模型是自包含的,与控制器和视图保持相对独立,所以可以方便 地改变应用程序的数据层和业务规则。如果把数据库从m y s q l 移植到q r a c l e , 或者把r d b m s 数据源改变成l d a p 数据源,只需改变模型即可。一旦正确地 实现了模型,不管数据来自数据库还是l d a p 服务器,视图都会正确地显示它 们。由于m v c 的三个模块相互独立,改变其中一个不会影响其他两个,所以 依据这种设计思想能构造良好的弱耦合的构件。此外,控制器提高了应用程序 的灵活性和可配置性。控制器可以用来连接不同的模型和视图去完成用户的需 6 武汉理工大学硕士学位论文 求,也可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图, 控制器可以根据用户的需求选择适当的模型进行处理,然后选择适当的视图将 处理结果显示给用户。 ( 6 ) m v c 适用范围:使用m v c 需要精心的计划,由于它的内部原理比较复 杂,所以需要花费一些时间去理解它。将m v c 运用到应用程序中,会带来额 外的工作量,增加应用的复杂性,所以m v c 不适合小型应用程序。但对于开 发存在大量用户界面,并且业务逻辑复杂的大型应用程序,m v c 将会使软件在 健壮性、代码重用和结构方面上一个新的台阶。 2 2j a 级e e 体系结构 j a v a e e 是一种利用j a v a 语言的标准体系结构定义,利用它可以更为方便 地在中间层加速分布式部署。j a v a e e 包括了e j b 、j s p 、j n d i 、j m s 、j t a 等 技术。在企业开发工作中利用这种体系结构,开发者将不必担心运行关键商务 应用所需的“管道工程 ,从而可以集中精力重视商业逻辑的设计和应用的表示。 因此,尤其适用于创建基于商务服务器和客户应用的程序【3 7 1 。 j 越,a e e 是一种全新概念模型,与传统的i n t e m e t 应用系统模型相比,有着 不可比拟的优势。这种模型在j a v a s e 之上添加了大量面向企业的特性和功能, 以此简化企业解决方案的开发、部署和管理等相关复杂问题。它不仅巩固了 j a v a s e 中的许多优点,如方便存取数据库的j d b ca p i 、c o r b a 技术以及能 够在i n t e m e t 应用中保护数据的安全模式等,同时还提供了对e j b 、j a v as e r v l e t a p i 、j s p ( j a v as e r v e rp a g e s ) 以及x m l 技术的全面支持。 j a v a e e 的设计目的是为了推动企业应用的开发和部署。它通过提供企业 计算环境所必需的各种服务使得部署在其平台上的多层应用可实现高可用性、 安全性、可扩展性和可靠性。计算平台支持j a v a 语言使得基于j a v a e e 标准开 发的应用可跨平台移植,且由于j a v a 语言的安全、严格等特性使开发者可以编 写出十分可靠的代码。j a v a e e 提供了在企业计算中需要的所有服务且简单易 用,其中的多数标准定义了接口,可与许多厂商的产品配合,容易得到广泛支 持;通过提供统一的开发平台,j a v a e e 降低了开发多层企业级应用的费用和 复杂度,同时支持e j b 与现有系统集成,有良好的向导支持打包和部署应用。 j a v a e e 平台提供的多层分布式应用模型、组件重用、一致化的安全模型以及 7 武汉理工大学硕士学位论文 灵活的事务控制,加快了企业应用的设计与开发,可以快速容易地建立融合了 i n t e m e t 技术,尤其是w e b 技术的n 层结构的分布式企业应用,较好地解决了 c s 结构所固有的可扩充性、可维护性和安全性不足且部署麻烦等弊端。 2 3m v c 模式在j a a e e 平台中的应用 眦设计模式是一种用于分离数据维护和数据表现的方法,在j a v a e e 中 引入m v c 设计模式,有助于把应用划分为合理的组件,从而可以方便地进行 系统的开发、维护和扩充。随着j a v a e e 各种组件技术的广泛应用和m v c 设 计模式的发展与完善,j a v a e e 与m v c 设计模式在w e b 应用系统开发领域达 到了完美的结合。目前,这种结合己经被广泛的应用于许多企业级w e b 应用系 统的开发过程中,其中,j s p 用于创建与用户交互的视图,j a v a b e a n 、e j b 等组 件用于创建实现业务逻辑的模型,s c r v l e t 用于创建实现业务逻辑与用户交互的 控制器。w 曲应用客户端的用户动作被视图传递给s e r v l e t 集中处理,s c r v l c t 处理控制逻辑,调用b e a n s 激活业务逻辑或修改模型状态。根据用户动作和模 型处理的结果,控制器选择一个视图作为用户请求的响应。这样,就形成了清 晰的m v c 设计模式,简化了w 曲应用系统的开发。 基于j a v a e e 和m v c 设计模式的系统模型借鉴了m o d e l 2 的思想,其技术 原理是以s q l s e r v e r , o r a c l e ,s y b a s v 等企业级数据库系统作为后台数据库,以 s e r v l c t 等高性能服务端程序作为后台总控程序,j s p 页面在前台运行,s c r v l e t 接受用户的输入,分别调用不同的j s p 页面向浏览器反馈信息,j s p s e r v l g t 通 过h t y 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 发送 到前端显示。 基于j a v a e e 和m v c 设计模式的系统模型以w e b 浏览器作为客户端,以 w e b 服务器和e j b 服务器作为中间层完成业务逻辑,数据层则是传统的大型企 业级数据库服务器。w e b 服务器是j a v a 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 c t 及h t m l 客户端交 8 武汉理工大学硕士学位论文 互,具有执行速度快、用户界面生成灵活、安全性好等特点,同时还能使用 j a v a b e a n 实现一些简单的业务逻辑。j a v a e e 使用e j b 服务器作为e j b 组件的 部署坏境,在e j b 服务器中提供了在分布式计算中组件需要的所有服务,如组 件生命周期管理、数据库连接管理、分布式事务管理、组件命名服务、自动容 错以及负载的自动均衡能力等。实现业务逻辑的e j b 组件可以在e j b 服务器中 高效运行,支持多客户端访问。h 啊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 组件,以实现复杂的业务逻辑。 9 武汉理工大学硕士学位论文 3 1j s f 框架 第3 章j s f 框架技术 j s f 框架是实现了m v c 模式的表示层框架,j s f 定义了r a d 工具四层中3 个: 一个基础组件架构,一个标准的u i 部件集,以及一个应用基础架构。j s f 的组 件架构定义了一个通用的方式来建立u i 部件。此架构能驱动标准的j s fu i 组件 ( 按钮,超链接,复选框,文本框等等) ,也为第3 方组件留出了空间。组件是面 向事件的,所以j s f 可以允许开发人员处理客户端产生的事件( 比如,文本框中 的值发生了变化或者用户点击了某个按钮) 。 对w e b 应用来说,和桌面应用不同,它必须总是要满足多个客户端( 比如桌 面浏览器,移动电话和p d a 等) 。而j s f 有一个可以按照不同方式显示组件的强大 架构。它还具有可扩展的机制来进行输入验证( 如字段长度) ,以及在显示字符 串和对象之间进行转换。 f a c e s 也能够自动保持u i 组件和收集用户输入值的j a v a 对象之间的同步,并 且通过调用后台b e a n ( b a c k i n gb e a n ) 响应事件。另外,它有一个强大的导航系统 并且全面支持多语言特征。这些特征构成了j s f 的应用基础架构,即对构建一个 新应用系统来说必不可少的基本构建块。 j s f 和桌面u i 框架如s w i n g 或者s w t 之间的关键不同之处:j s f 是运行在服 务器之上。因此,f a c e s 应用将运行在一个标准的j a v aw e b 容器之中,比如a p a c h e t o m c a t ,o r a c l ea p p l i c a t i o ns e r v e r ,或者i b mw e b s p h e r ea p p l i c a t i o ns e r v e r ,然 后向客户显示h t m l 或者其它标记语言。如果点击s w i n g 应用中的一个按钮,它 将产生一个事件,这可以直接在驻留于桌面中的代码来处理该事件。相反,w e b 浏览器并不知道有关j s f 组件和其事件的任何东西;它仅仅知道显示h t m l 而已。 所以当你点击一个f a c e s 应用按钮,它将产生一个请求,由浏览器发送到服务器。 f a c e s 负责将该请求转换成一个可以被服务器中的应用逻辑所处理的事件。它也 负责保证你在服务器所定义的每一个u i 部件都正确显示给浏览器。 1 0 武汉理工大学硕士学位论文 3 2j s f 框架工作原理 j s f 应用采用的是事件驱动模式,它是通过处理由页面中组件触发的事件 来工作的f 1 2 】。这些事件是由用户的动作引起的。比如,当用户单击一个按钮时, 按钮会触发一个事件,通过编写监听这个事件的监听器,j s f 开发人员可以决 定当待定事件发生时j s f 应该做什么。图3 - 4 说明了j s f 应用的事件处理过程。 j s p 页面 图3 - 4j s f 应用的事件处理过程 j s f 应用看起来就像其他s e r v l e t j s p 应用一样,也有部署描述符。j s p 页面、 定制标记库、静态资源等。j s f 应用的用户界面容纳了表单、输入框及按钮等 j s f 组件的一个或多个j s p 页面,这些组件是通过j s f 定制标记表示的,它们 可以有自己的数据。一个组件可以嵌套在其他组件里面,这样就构成了一个组 件树。事实上,j s f 应用里的j s p 页面就是用组件树来表示的。和普通s e r v l e t j s p 应用一样,也可以使用j a v a b e a n 来存放用户输入的数据【4 6 】【4 7 1 。 j s f 的控制部分主要包括名为f a c e s s e r v l e t 的前端c o n t r o l l e rs e r v l e t 、一个 或多个配置文件以及一系列a c t i o n 处理器。f a c e s s e r v l e t 负责从w e b 客户端接 受进入的请求,然后执行一组合理的步骤来准备和派发响应。j s f 中的m o d e l 通常类似于s t r u t s 中的a c t i o n f o r m ,同样是在w 曲应用的v i e w 和m o d e l 层之 间保存和列集数据【l3 1 。m o d e l 经常通过j a v a b e a n 来表示,在j s f 配置文件中定 义为竹m a n a g e d - b e a n ”。v i e w 层主要包括组件树,单个组件或者整个组件都可以 改变其渲染方式,来支持众多客户端用户界面类型。同样,j s p 页面间的导航 方式也是在j s f 配置文件( f a c e s 。c o n f i g x r n l ) q 定义的。 在上面的处理过程中,j s f 应用的实现需要用户信息以及其他一些信息, 武汉理工大学硕士学位论文 如键入到输入字段中的值、用户的地区等。这些信息都会最为h ,r 曙请求而被 提交,w e b 容器会将这些信息封装在j a v a x s e a w l e t s e r v l e t r e q u e s t 对象中。另外, j s f 实现可能需要有关上下文的信息,该信息可在j a v a x s e r v l e t s e r v l e t c o n t e x t 对象中找到。为了将响应传递给用户,j s f 应用需要写入j a v a x s e r v l e t s e r v i a - r e s p o n s e 对象。j s f 将这三个对象装入一个j a v a x 。f a c e s c o n t e x t f a c e s c o n t e x t 类 型的新对象中,它包括了所有处理j s f 应用请求和呈现响应的请求状态信息。 对于即将被处理的请求,则会被直接存入f a c e s s e r v l e t 中,f a c e s c o n t e x t 对象被 创建以后,每个f a c e s s e r v l e t 还必须通过s e r v i c e 方法创建一个i a v a x f a c e s 1 i f e c y c l e l i f e c y c l e 对象,它主要负责处理j s f 请求。j s f 应用也可以有一个配置 文件,可对其中的内容进行分析并加载。可从j s f 应用中的任何组件、时间监 听器、验证器、转换器或者呈现器中得到该配置文件。当加载上下文时,w e b 容器会在j a v a x s e r v l e t s e r v l e t c o n t e x t l i s t e n e r 的帮助下对这个配置文件进行分 析。 ( 1 ) f a c e s s e r v l e t 对象。每个w e b 应用都使用一个f a c e s s e r v l e t ,这是一个由 j a v a x f a c e s w e b a p p f a c e s s e r v l e t 类表示的s e r v l e t 。所有j s f 请求都会被直接写到 f a c e s s e r v l e t 中,因为他们的u r l 模式包括了f a c e s p a t t e r n ,这些必须在w e b 应用部署描述文件( w e b x m l ) 中声明。 ( 2 ) f a c e s c o n t e x t 对象。每个j s f 请求的f a c e s c o n t e x t 实例都是由w e b 容器 的3 个对象实现的,这3 个对象分别为:s e r v l e t c o n t e x t 对象、s e r v l e t r e q u e s t 对象、s e r v l e t r e s p o n s e 对象。f a c e s s e r v l e t 中保存对i a v a x f a c e s c o n t e x t f a c e s c o n t e x t f a c t o r y 对象的应用,用来返回f a c e s c o n t e x t 实例。 ( 3 ) l i f e c y c l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省聊城市2025年初中学生学业水平考试历史试题(含答案)
- 在全校教育教学质量提升工作会议上校长讲话:以“六个聚焦”靶向施策为课堂教学精准赋能
- 巷口吊机作业安全培训课件
- 2025年大类资产配置投资策略分析报告:曙光乍现万象更新
- 岩石植物插画师培训课件
- 屋面安全培训内容记录课件
- 输液港维护课件
- 个人短期周转资金借款服务协议
- 员工购车补贴与职业技能培训结合合同
- 小鸡小鸭大不同课件
- 粤教花城版小学音乐歌曲《哈哩噜》课件
- 河北省特种设备检验收费标准
- 集成电路技术导论课件
- 交管12123学法减分试题库带答案
- 培育和践行社会主义核心价值观的课件
- 交通标志牌工程施工组织设计(标准版)
- 展筋丹-中医伤科学讲义-方剂加减变化汇总
- 第二章药物转运及转运体
- 全区建设工程质量检测人员岗位考试考核实施细则
- 【课件】《红烛》课件24张统编版高中语文必修上册
- 交通事故认定书复核申请书模板
评论
0/150
提交评论