(计算机应用技术专业论文)基于j2ee平台web应用的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于j2ee平台web应用的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于j2ee平台web应用的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于j2ee平台web应用的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于j2ee平台web应用的研究与实现.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

武汉理工大学硕士学位论文 摘要 当前,s u n 公司提出的j 2 e e 已经日渐成为企业w e b 应用的开发标准。 j 2 e e 以组件技术为基础,具有n 层体系结构,为非常广泛的领域构建了一个完 整的、面向对象的、易维护可扩展的应用架构,为w e b 应用提供了一个健壮的 开发平台。 随着j 2 e e 平台的广泛应用,基于b s 的多层w e b 体系结构正在不断的发 展完善,并逐渐成为w e b 应用开发的主流。但是,即使利用最先进的软件平台 j 2 e e ,开发这样的应用仍然存在诸多难题。在多层w e b 体系结构的设计中,普 遍存在着程序可重用程度低、维护工作繁琐、应变能力不强等问题。 本文正是以上述问题作为出发点,通过对 i v c 设计模式及s t r u t s 框架的 深入学习研究,着重阐述了如何利用s t r u t s 框架,通过优化w e b 应用程序开 发框架来有效解决目前w e b 开发中存在的问题。 当前基于j 2 e e 平台的w 曲应用开发方式主要有两种。即传统w e b 应用开 发方式和基于m v c 0 订o d e l e w c o n t m l l e r ,模型一视图一控制器) 模式的w c b 应用开发方式。后者能够克服传统w e b 应用开发方式所固有的弊端,其优点是 将显示逻辑与业务逻辑明确分离,以适应越来越复杂的w e b 应用系统的设计需 求。因此,采用基于m v c 模式的w 曲应用开发模式成为开发人员的首选。 s t n l t s 是a d a c h e 软件组织开发的开放源代码的w 曲应用程序框架,是当前 w 曲应用开发中最流行的框架之一。它的本质就是在j s pm o d e l 2 的基础上实现 的一个m v c 框架,其核心问题是配置文件s t n l t s c o n f i g x m l 的设计。在w 曲应 用开发中,它强制性地把界面和业务逻辑分离,有利于网页设计者和程序设计 者的分工,提高了代码的重用性和灵活性,便于组件式开发。 本文在分析了基于j 2 e e 平台的w 曲应用系统的基础上,深入细致地研究 了基于m v c 设计模式的s t n l t s 应用框架,且以该应用框架实现了某公司内部 管理信息系统,详细探讨了开发中的关键技术,该系统具有易于扩展、易于维 护及可跨平台等特点,为开发类似的w e b 应用提供参考。 关键字:j 2 e e ;m v c ;s t r u t s ;w e b 应用 武汉理工大学硕士学位论文 a b s t r a c t t h ej a v a2p l a t f o 瑚e n t e r p r i s ee d j t i 衄( j 2 e e ) p r o v i d e db ys u nm j c r o s y s t e i 玎s ,l i l c h a sg r a d u a l l yb e c o m eas t a n d a r do fe n t e r p r i s ew 曲a p p l i c a t i o nd e v e l o p m c n t j 2 e ei s b a s e do n 也et e c h 玎o l o g yo fc o m p o n e n ta n dh a sa nn t i e ra r c h i l c c t l i r e i tp r o v i d e sa l l i n t e 伊a t e d ,o b j e c t - o r i e n t e d ,m a j n t a j n a b l ea n de x p a n d a b l ea p p l i c a t j o na r c h i t e c t l l r ei n w i d ef i e l d sa n dam i 曲t yd e v e l o p m e n lp l 州砸l o ra p p l i c a t i o n w i t ht h ew i d eu s eo fj 2 e ep l a t f 0 珊,t h em u l t i l a y e rw c bs t n l c t u r eb a s eo nb s h a sd e v e l o p e d 孕a d u a l l y ,a i l db e c 哑et h em a i n s 纰a mo ft l l e w 曲a p p l i c a t i o n d c v e l o p m e n t b u te v c u s i l l gt h em o s ta d v a n c e ds o f 呐a t ep l a t f o 蛐j 2 e e ,主ta l s oi s d i 历c u l tt oi m p l e m e n tt h e 印p l i c a t i o n mt h ed e s i g no fm u l t i 王a y e rw 曲s c n j c t u r e ,i th a s u b i q u i t o u sd e f e c t st h a tr e u s a b l eo fa p p l i c a t i o ni sl o w ,t h em a j t e n a l l c ew o r kj sh e a v y a i i dt h ea d a p t a b i l i t yo fs o m v a r ei sw e a ks oh o wt oo r g a j l i z ep r o 掣锄t 0a c h i e v ew f i t e t h i st h e s i si sj u s tb a s eo nt h e s eq u e s t j o n s ,t h m u g l lt h ed e e ps t l l d ya i l dr e s e a r c h o ft h em v cp a t t e ma n ds t m t s 劬m e w o r k ,e x p a t i a t eh o wt ou s es t 兀l t s 加m e w o r kt o r e s o l v et h eq u e s t i o n sb yo p t i m i z i n gt l l ew 曲d e v e l o p m e n t 仃a m e w o r k t h e s em ot y p e so fd e v e l o p i n gm o d ea b o u tw 曲a p p l j c a t i o nb a s e do nt h ej 2 e e p l a t f o 珊,w h i c ha r et l l e a d i t i o n a ld e v e l o p m e n tm o d eo fw e ba p p l i c a t j o na dt h e d e v e l o p i n gm o d eo fw 曲a p p l i c a t i o nb a s e do nm v c ( m o d e l 一e w c o n t r o l l e r ) p a t t e m t h el a t t c rc a no v e r c o m e m a n yd i s a d v a n t a g e si nt h et r a d i t i o n a ld e v e l o p m e n t m o d e a n dj t se x c e l l e n tf e a t u r ei st os e p a r a t ed i s p l a yl o 舀ca n do p e m t j o nl o 舀c ,w h i c h c a nm e e td e s i 弘r e q u i r e m e n t so ft h em o r e 孤dm o r ec o m p l j c a t e dw c b 印p l i c a t i o n s o i th a sb e c o m et h e i r s tc h o i c ef o rd e v e l o p e r st ou s e 山ed e v e l o p m e n tm o d eb a s e do n m v c p a t t e mf 研w c ba p p l i c a t i o n s t r u t s 讧a no p e ns o u f c ef r a m e w o r kf o r b u i l d j gj a v aw e ba p p l j c a t i o nw h j c hw a s d e v e l o p e db ya p a c h es o f t 、a r eo 玛a n i z a t i o na i l d j s0 n eo ft h em o s tp o p u l a r f r a r n e w o r k sf o rw c ba p p l i c a t i o n sa i l dd e v e l o p m e n t sn o w a d a y s s t n i t se n c o u r a g e a p p l j c a t i o na r c h i t e c t u r e sb a s e do nt h em o d e l 2 印p r o a c h ,av a r i a t i o no ft h ec l a s s i c m o d e l 一e w c o n t r o l l e r ( m v c ) d e s j 印p a r a d i g m i ts e p a r a t e s t h ev j e wa n dt h e b u s i n e s sl o g i c o r c i b ly ,s oj ti sp r o p i t j o u st ot h es e p a r a t j o no ft h ew e bd e s i g n e ra n d i i 武汉理上大学硕士学位论文 t h ep r o g r a m m i n gd e s i g n e a n d ti m p r o v e sm er e u s a b j l i t ya n da g i l i i yo ft h ec o d e a f t e ra n a l y z j n gm a n yw e ba p p l i c a t i o n sb a s e do nt h ej 2 e ep l a t f o m ,t h i st h e s i s d e s c r i b e st h es t m t s 丘a m e w o t kb a s e do nm v cd e s i g p a t t e mi nd e t a i l a n da f t e r j m p l e m e n t i n gs o m em a n a g e m 翩t1 n f o 册a t j o ns y s t e mb yt h es l n j t s 靠a m e w o f k ,t h e t 1 1 e s i sd e e p l yp o b e si n t oc o r ed e v e l o p j n gt e c h n i q u e si nd e t a i l s t h es y s t e mh a sm a l l y c h a r a c t e r i s t i c s , s u c ha sc r o s s p l a t f o md e v e l o p m e ts u p p o n ,e a s ye x p a n s i b i l i t y ,a i l d e a s ym a i n t e n a n c ea l l ds oo n ni sab e n e f i c i a lr e f e r c n c et or e s e m b l et e s e a r c ho nw 曲 叩p l i c a t i o n k e yw o r d s :j 2 e e ;m v c is t n l t s ;w 曲a p p l i c a t i o n i i i 武汉理工大学硕士学位论文 第1 章绪论 1 1 课题研究的目的和意义 随着网络技术的迅速发展,i n t e r n e t 已经成为一种在全球范围内进行信息 交流、技术协作及商业活动的系统工具,w e b 己作为世界范围内运用最广泛 的,最具有效信息获取和发布的媒体。如今企业越来越依赖各种不同的w 曲应 用程序来增强经营与管理效能。在这种形势下,基于w e b 的应用开发成为计算 机应用开发的热点。所谓w e b 应用是指将传统的编程技术与w e b 技术相结合, 通过在传统的w e b 静态页面中加入各种程序和控制逻辑,在网络的客户端和服 务器端实现动态和个性化交流与互动的应用。 传统的w 曲应用开发是将页面显示、业务逻辑和数据处理大部分都集中在 页面代码中,导致了业务逻辑、数据处理和页面显示的耦合性很强,w 曲应用 扩展与维护都比较困难,同时也不利于开发人员分工协作。传统的w e b 应用开 发在开发大型的企业级w e b 应用中愈加显得力不从心。近年来,随着网络技术 的迅速发展和j 2 e e 平台的广泛应用,基于b s 的多层w c b 体系结构逐渐发展 成熟起来,多层w 曲应用的开发已成为主流。多层的w 曲应用设计技术和开 发工具,能够将页面显示、业务逻辑和数据处理相分离,最大限度地降低系统 各模块之间的耦合性,从而增强系统的可扩展性与可维护性,提高代码重用 率,使系统的层次结构更加清晰,易于开发人员的分工协作,充分发挥开发人 员的各自特长。 j 2 e e 平台提供了一种基于组件的方法,有利于降低成本、加快应用程序 的开发和设计。对于一个多层的应用模型,根据功能将其应用逻辑划分成不同 的组件,如应用客户组件、勘b 组件、w e b 组件( s e r v l e t ,j s p ) 和a p p 】e t ,我们 要傲的就是如何组装这些组件使之成为一个易开发、易维护、可扩展性好的软 件体系结构,从而以更小的成本、更少的资源、更快地完成应用的设计和开 发。在开发的过程中,我们可以选择良好的软件架构,适当的设计模式,甚至 可以开发套框架结构,从而降低软件开发和维护的成本,增强软件的复用性 和可扩展性,最大限度地发挥j 2 e e 平台的技术优势。1 。 m v c 是设计交互式应用时广泛采用的一种设计模式,也是j 2 e e 蓝图推 武汉理工大学硕士学位论文 荐的在开发w 曲应用时使用的方法1 1 4 】。m v c 即:模型( m o d e l ) 、视图( v i e w ) 、 控制器( c o n t r o l l e r ) 。模型表示业务逻辑:视图是应用程序中用户界面相关的部 分;控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后 把响应结果送回到客户端。这种设计模式把应用逻辑、处理过程和显示逻辑分 成不同的组件实现,通过三者之间的分离达到层问的松散耦合,以实现代码重 用和易于修改,提高系统的灵活性、复用性和可维护性,达到提高软件质量的 目的,目前,m v c 模式成为基于w 曲的应用和服务的首选。 s t n l t s 是一个基于j 2 e e 平台、具体实现m v c 设计模式的一种框架。 s t r i l t s 主要采用大多数开发者熟知的j a v a b e a n 、j s p 、s e l e t 等标准技术,对 m v c 设计模式的三个部分提供了对应的实现组件,它的目的是为了帮助开发 人员减少运用m v c 设计摸式开发w 曲应用的时间。其中对应用程序的用户界 面表示和数据的后端逻辑处理代码进行了抽象,整合了s e r v l e t s 和j s p 在w 曲 应用开发上的优势以建立灵活、扩展性强、复用程度高的应用系统。s t 兀l t s 规 定了应用的体系结构,为应用系统提供了一个良好的软件构架,解决了由于应 用的复杂性而在软件开发过程中所带来的各种问题,并对于实现在应用系统建 设初期所制定的软件功能、开发投入、开发周期、项目的组织和管理上的目 标,都有极大的帮助。 基于上述分析,研究如何实现s t n l t s 框架的各个组件,如何利用s t m t s 框 架解决现在w 曲应用程序开发过程中存在的一系列问题,从而达到提高程序的 开发速度,提高软件的性能、可复用性和可维护性将是一个很有意义的课题。 1 2 课题研究的主要内容 本文主要通过对j 2 e e 平台多层体系结构的研究,结合设计模式当前最常 用的实现框架,完成了基于s t n l t s 的w 曲应用一个开发: ( 1 ) j 2 e e 平台体系及相关技术研究。j 2 e e 是一个基于组件一容器模型的 系统平台。其核心概念是容器。容器是指为特定组件提供服务的个标准化的 运行时环境,组件是一个可以部署的程序单元,它以某种方式运行在容器中。 从多层应用的角度看,j 2 e e 平台定义了四个不同的层:客户层、w e b 层、业务 层和企业信息层。 ( 2 ) m v c 设计模式的研究。对m v c 设计模式进行了深入的研究,通过对 2 武汉理工大学硕士学位论文 w e b 应用开发常用模式的分析与对比,深刻理解了该模式的模型、视图、控制 器三部分在构成w 曲应用程序框架中起的作用,并总结出使用此模式所存在的 优势与不足及其适用范围。 f 3 1s t m t s 框架的研究。s t r u t s 是实现m v c 模式的一个优秀的应用框架。 本课题对该框架的整体结构及处理流程进行了深入的分析及研究,分析了 s t m t s 的核心组件、配置文件及运行机制,分析了使用s t n l t s 框架的优缺点,并 对s t n l t s 的开发流程作了总结。 ( 4 ) 基于s l r u t s 的w c b 应用开发框架的搭建和优化。通过对m v c 设计模式 及s t n l t s 框架的深入研究,以及对多层w 曲体系结构各层实现方式的分析与对 比,最终总结出基于j 2 e e 平台开发w 曲应用程序的技术方案,并分析研究基 于s 协l t s 的w 曲应用程序开发框架体系结构的构成;对s t m t s 框架的各组件特 别是控制器组件的实现方式进行研究,从而得到比较合理的基于s t m t s 框架的 w 曲应用开发的技术组合。 1 3 论文的组织 第1 章绪论部分对本文所要研究课题的研究目的及意义作了简要的阐述, 说明了课题研究的主要内容。 第2 章主要介绍了j 2 e e 平台概述,它的多层应用体系结构和组件的划分及 相关技术。 第3 章主要介绍了j 2 e e 平台的设计模式及特点,具体说明了m v c 设计模 式及其组成部分,各部分实现的主要功能,使用此模式的优势与不足以及此模 式的使用范围。 第4 章主要介绍了基于m v c 模式的w 曲应用框架s t m t s 。对s t n l t s 框架的 体系结构及处理流程做了阐述,并简述了使用s 协l t s 框架的开发流程及此框架 的核心s t m t s c o n f i g x m l 配置文件。 第5 章阐述了利用b s 架构技术,基于s t n l t s 框架搭建w 曲应用程序框架 的方法。本章重点讲述了项目的背景、模块的划分及界面设计。对系统中公司 内部信息管理模块进行了总体分析。 第6 章讲述了视图、模型和控制器的实现方法,具体实现了一个公司内部 员工信息管理系统,用实例说明了s t r u t s 框架的应用方法,并验证了所设计实 3 武汉理工大学硕士学位论文 现方法的正确性。 第7 章总结与展望。对本论文的工作进行总结,指出了本文中许多值得 研究和探讨的问题,对今后的工作做了展望。 4 武汉理工大学硕士学位论文 第2 章j 2 e e 平台及相关技术 2 1j 2 e e 概述 为克服传统w c b 开发c s 模式的弊端,适应b s 框架的要求,由s u n 公 司领导,多家公司参与推出一种全新企业应用程序开发标准,这就是j 2 e e 平 台,与传统的i n t e m e t 应用系统模型相比,它有着不可比拟的优势。这种模型 在j 2 s e 之上添加了大量面向企业的特性和功能,简化企业解决方案的开发、 部署和管理等相关复杂问题。 j 2 e e 的设计目的是为了推动企业应用的开发和部署。它通过提供企业计 算环境所必需的各种服务,使得部署在j 2 e e 平台上的多层应用可以实现高可 用性、安全性、可扩展性和可靠性。j 2 e e 技术巩固了标准版中“编写一次、 随处运行”的优点,使得基于j 2 e e 标准开发的应用可跨平台移植,且由于 j a v a 语言的安全、严格等特性,使开发者可以编写出十分可靠的代码。j 2 e e 提 供了在企业计算中需要的所有服务,且简单易用;j 2 e e 中的多数标准定义了接 口,如j n d i 、j d b c 、j a v am a 丑等,可与许多厂商的产品配合,容易得到广泛 的支持:通过提供统一的开发平台,j 2 e e 降低了开发多层企业级应用的费用和 复杂度,同时支持e j b 与现有系统集成,有良好的向导支持打包和部署应用。 j 2 e e 平台提供的多层分布式应用模型、组件重用、一致化的安全模型以及灵活 的事务控制,加快了企业应用的设计与开发。从整体上讲,j 2 e e 是使用j a v a 技术开发企业级应用的事实上的工业标准“1 。 2 2j 2 匪的多层应用模型 j 2 e e 平台应用多层分布式结构来构造企业应用。企业应用的逻辑根据其 功能而分布到不同的j 2 e e 组件中,组成j 2 e e 应用程序的各种组件,根据它所 在j 2 e e 的层被发布到不同的机器上。这种多层模型解决了两层模式 ( c l i e n “s e r v e r ) 的弊端,在c 俗模式中,客户端因担当了过多的角色而显得臃 肿,初次部署比较容易,但难于升级或改进,可伸展性不强,服务器消耗部分 系统资源用于处理与客户湍的连接工作,重用业务逻辑和界面逻辑也非常困 难。j 2 e e 的多层企业级应用模型将两层模型中的不同层面切分成许多层。一个 5 武汉理工大学硕士学位论文 多层化应用能够为不同的每种服务提供个独立的层,以下是j 2 e e 典型的四 层结构,运行在客户机上的客户层,运行在j 2 e e 服务器上的、e b 层,作为解 决或满足某个特定业务领域的需要的逻辑的业务代码由运行在业务层的目b 来 执行的业务逻辑层,另外是运行在e i s 服务器上企业信息系统层【“。 j 2 e e 平台的层次结构如图2 1 所示: 溅夔嚣搿豳容器 掰罄;器 e 3i 犍l |徽 ij s p |i 黼i | a 。l 畦ll 辩|l 黼l 奥蕊 l s e r v l e t懈i 煳l心百 l 妇。应霜| 胤 j 2 嚣嚣,2 蕊 j 熊e 嫦户端f 礴蝌懈芒弓 辫玉lj 2 嚣嚣多瑟蘩翰 l + 客户鼷 客户艨运行在客声壤楗鼗上,嗣予与焱篷绩惑系统戆爰户遴嚣交飘淡及显 示根据特怒商务规则进行计算掰的结果。藻予j 2 e e 规范的客户端可以是基于 w 洳的,也可以是不基于w 曲的独立应用程序。襁蘑于w c b 的j 2 e e 客户端应 翔审,蠲户溅菱爨在客户瑟中逡嚣,著竣w 豳l 夔务器孛下载龇b 滋中豹静态 w 瑚l 页筒或由j s p 、s e r v l e t 动态生成的h 例l 煲面。 在不藏予豫b 竣| 2 基嚣客户溃应嗣中,独立瓣客户端应溺程黪不建运萼亍在 一个h t m l 页面中,丽是运行在一些基予网络的系统中,比如手持设铸或汽车 电话等。同样,这些独立的应用也可以运行在客户端的j a v aa p p l e t 中。这种类 型瓣客户鲻废鼹程痔霹娃在不经过w 曲艨懿漕凌下鑫接访阉罄鬻褒掰b 褰器 嘲bc o n t a i n e r ) 中的褂b 组件。这种不基于w 袖的j 2 e e 密户端应用可能也 毯糖一个j a v 鑫b e a n 类,鲻予繁理用户羧入鞠将该输入发送捌掰b 孛避 亍处 弹。 6 武汉理工大学硕士学位论文 2 w 曲层 w e b 层运行在w e b 服务器上,是由j s p 页面和用于动态生成h t m l 页面 的s e r v l e l 构成。这些基本元素在组装过程中通过打包来创建w c b 组件。运行 在w 曲层中的w 曲组件,依赖w 曲容器来支持诸如响应客户请求以及查询 e j b 组件等功能。与客户层一样,w 西层同样可以包含一个j a v a b e a n 组件以管 理用户的输入并将输入发送到对应的日b 中进行处理。 3 业务层 业务层运行在e j b 服务器上,在基于j 2 e e 规范构建的应用系统中,将解 决或满足特定业务领域商务规则的代码构建成为业务层中的彤b 组件。h b 组 件可以完成从客户端应用程序中接收数据,按照商务规则对数据进行处理,将 处理结果发送到企业信息系统层进行存储,从存储系统中检索数据以及将数据 发送回客户端等功能。 部署和运行在业务层中的彤b 组件依赖于e j b 容器来管理诸如事务、生命 期、状态转换、多线程及资源存储等。这样,由业务层和w 曲层构成了多层 分布式应用体系中的中间层。 4 企业信息系统层 企业信息系统( e i s ) 层运行在e i s 服务器上,在企业应用系统的逻辑层 划分中,e i s 层通常包括企业资源规划( e r p ) 系统、大型机事务处理系统、 关系数据库系统( r d m s ) 及其它在构建j 2 e e 分布式应用系统时己有的企业信 息管理软件。 2 3j 2 e e 多层应用模型的优势 对系统开发人员而言,j 2 e e 的多层分布式应用模型的优势主要体现在两个 方面1 1 0 】。 一是开发人员可以利用这种模型来创建可重用代码和可伸缩的应用系统。 这是因为该模型可以对程序设计逻辑进行解耦,使之成为高内聚低耦合的应用 系统。这种模型可以将应用的组件和子系统分布在网络中的几个层上。这样可 以促进高度模块化应用系统的开发,而高度模块化的应用系统可以促进软件重 用。此外,如果将应用系统分布在明确的层上,那么,每一层就可以在自己的 计算环境中执行,因而获得一定程度的可伸缩性。 7 武汉理工大学硕士学位论文 二是这种模型除在运行资源级提供可伸缩性外,还在人力资源级提供了可 伸缩性。这是由于企业级的应用系统开发本身是一项复杂而费时的工程,因而 需要由一个或数个开发小组协同工作。因此,j 2 e e 应用系统是面向团队的开发 项目。又由于企业级的应用系统具有多层的特点,在开发过程中,每一个小组 可以负责应用所要求的一个主要层,只需将关注的重点放在特定层即可。这 样,开发团队的规模就可以根据需要进行扩大或缩小。 2 4j 2 童矗件 j 2 醚标准定义? 一个竞蛰戆瘟瘸缝黪槛檠,佟为金遘应瘸嚣统鏊本魏造模 块的组件就建立在这个框架之上。几乎所肖的业务鹿用,从简单的w 曲门户到 复杂的企业级分布式攀务应用,都可以在此基础上构造。j 2 飘e 组件框架只是 一个戳露、类霜接叠:移式疆袋瓣薹菇架梭,最终擒袋痤爱静渡务道礞簿羹表瑗,控 制逻辑要痰建立在这个框架上煦应用组件实现。j 2 e e 应用稷序是融缀件构成 熬,1 2 罄嚣缀磐是其蠢独立凌黢懿敦毒串攀露,玄翻逶蓬朝关豹类嚣文传缀装残 j 2 甄e 成用程序,并与其他组件交互。j 2 e e 组件傀括:w e b 客户端、成用程序 客户端程序和a p p l e t s 是客户屡组件;j a v as e r v l e l 、j s p 和j s t l 怒w 曲层组 终;嚣藏l e 攀癌辩j a v 鑫b e 疑s 浮玲怒渣务瑟缀佟。 1 客户屡缀件 窖户鼷缀舞毽捂:a 撑l e l 、a p p l i c a 嫩麟锚t 瘦瘸程孝客户壤) 鞠溅菱爨 等。a p p i 蛾是嵌在测流嚣中的一种轻量级客户端,一般而言,仅当使期w 曲页 面无法充分地表现数据或应用界面的时候,才使用它。a p p l e t 是种糟代w 曲 趸嚣懿手羧,仅韪够使鼹1 2 s 嚣开发a 落e t ,a 辨l e 无法搜羯j 缆戴戆套季孛 s e w 沁和a p i ,这是为了安全憔的考虑。 嚣a 掰 c a 蛙潍c l i e 箍鞠楚a p 参e l 两蠢是耪骏羹量级懿客户端,它能够使 掰j 2 琶毪的大多数服务和a 堂l 。斑用程净可_ | 冀惫蒸予w 西方式的,也可阪是基 于传统方式的。客户应用程序鼹指在客户机上运行的j 2 e e 程序。它为用户提 供了事富豹爨嚣和复杂匏操作。客户应用程序壹接谤阚在服务器掰罄察器内黪 搿转程序。当然,j 2 毯e 客户逡用程序也可像a p 站e l 客户那样以连接和 服务器的s e r v l o t 通僖。与a p p l e t 不厨的足,客户应用程序一般黉婺在客户端 避行安装,藕a p p l e t 避在w 晒土下载,无须专门安装。一般来说,客户应掰 8 武汉理工大学硕士学位论文 程序适合在企业内部网中使用,a p p l e t 适合在w w w 上使用。 w e b 客户端一般指的就是w 曲浏览器,它以标准格式显示从服务器传递来 的网页。不管j 2 e e 应用服务器怎样生成这些网页的,它们被传递给浏览器时 已经是h t m l 或x m l 格式,浏览器只是正确地显示给用户。图2 2 显示了组 成客户层的不同组件,它们有的直接和业务逻辑层交互而不经过w e b 层。 客户层 图2 2 客户层组件与w 曲层及业务层的交互关系 随着j 2 e e 技术的不断发展,j 2 e e 的客户层组件不断增多。例如:j a v a w 曲s t a r t 客户是基于j f c 俗w i n ga p l 的,适合j 2 e e 程序使用的客户应用,它 基于比较新的j a v aw 曲s t a n 技术。这种技术主要提供了网上的快捷程序下载和 安装方式。像a p p l e t 一样,可以从w 曲浏览器调用j a v aw 曲s t a n ,它也可 以与s e n ,l e t 交互。与a p p l e t 不同的是,j a v aw 曲s t a n 应用程序将文件缓存 在本地硬盘,只有当需要时才下载额外的文件,可以从本地资源安装或通过 w e b 远程安装j a v aw c bs t a n 应用程序。此外,启动的g u i 是功能齐全的 s w i n g 客户机,可以在不妨碍应用程序的情况下关闭浏览器。其结果是结合了 a p p l e t 和非a p p l e t 两者的优点,但设置起来有些复杂。无线客户基于移动信 息设备定型技术( m o b i l ei n f 0 珊a t i o nd c v i c ep r o f i l e ) ,j a v a 微型版提供了m i d p 的a p i 和有限连接设备配置( c o n n e c t e d - l i m i t e dd e v i c ec o n f i g t l r a t i o n ) 技术。这 些技术可以使无线设备( 如手机,p d a ) 同j 2 e e 程序进行通信。 2 w e b 层组件 w 曲组件与基于w 曲的客户端( 如w e b 浏览器) 进行交互。j 2 e e 中有四 类w e b 组件:s e l e t 、j s p 、可选的j a v a b e a i i 和j a v as e r v e rp a g e ss t a n d a r dt a g l i b r a r v ( j s t l ) 。j s p 和s e l c t 都是w e b 服务器的功能扩展,接受w e b 请求, 返回动态的w e b 页面。w 曲容器中的组件可使用彤b 容器中的组件完成复杂 9 武汉理工大学硕士学位论文 的商务逻辑。按照j 2 e e 规范,静态的h 1 m l 页面和a p p l e t s 不算是w 曲层组 件,虽然他们和w 曲层组件( j s p ) 完成的功能一般相似。正如客户层那样, w 曲层可能包含某些j a v a b e a n 对象来处理用户输入,并把输入发送给运行在 业务层上的e j b 来进行处理,如图2 3 所示: j 2 e e 服务器 图2 3w e b 层组件与客户层及业务逻辑层的交互关系 s e l e t 是j a v a 平台上的c g i 技术。s e r v l e t 在服务器端运行,动态地生成 w 曲页面。与传统的c g l 和许多其它类似c g i 的技术相比,j a v as e r v l e t 具有 更高的效率并更容易使用。对于s e 1 e t ,重复的请求不会导致同一程序的多次 转载,它是依靠线程的方式来支持并发访问的。 j s p 是一种实现普通静态h t m l 和动态页面输出混合编码的技术。从这一 点来看,非常类似m i c r o s o f ta s p 、p h p 等技术。借助形式上的内容和外观表现 的分离,w 曲页面制作的任务可以比较方便地划分给页面设计人员和程序员, 并方便地通过j s p 来合成。在运行时态,j s p 将会被首先转换成s e l 乩并以 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 p 写一个能连接数据库的j s p 文件, 可以用现成的j s t l 标签来进行数据库连接。这种j s t l 标签是最优化和标准化 的,任何种类的w 曲服务器都会支持,这样就省去了不少j s p 的麻烦。j s t l 1 0 武汉理工大学硕士学位论文 目前提供基本的j s p 功能,仍在不断扩充中。 3 ,业务层组件 业务层组件就是通常所说的e j b 组件,在这个组件里需要定制业务逻辑。 e j b 规范定义了一个开发和部署分布式商业逻辑的框架,以简化企业级应用的 开发。所有的e j b 都需要配置到彤b 服务器中,e j b 服务器作为容器和低层平 台的桥梁管理着e j b 容器,并向该容器提供访问系统服务的能力。所有的日b 实例都运行在e j b 容器中,e j b 容器提供了系统级的服务,控制了e j b 的生命 周期。剧b 规范中定义了三种不同类型的e j b :会话b e 孤、实体b e a n 和消息 驱动b e a i l 。会话b e a i l 表示与客户端程序的临时交互,当客户端程序执行完 后, 会话b e a n 和相关数据就会消失。实体b e a n 表示数据库的表中一行永久 的记录,当客户端程序中止或服务器关闭时,就会有潜在的服务保证实体 b e a l l 的数据得以保存。消息驱动b e a i l 结合了会话b e a i l 和j m s 的消息监听 器的特性,允许一个业务层组件异步接收j m s 消息。图2 4 显示h b 组件接 受到从客户程序传来的数据,处理后将它发回给客户程序或者发给e i s 层: 业务逻辑层e i s 层 j 2 e e 服务器 图2 4 业务层组件与客户端层、w e b 层及e i s 层交互关系 2 5j 2 e e 容器与服务 2 5 1j 2 旺容器 j 2 e e 对每一种主要的组件类型定义了相应的容器类型,因此对应j 2 e e 组 武汉理工大学硕士学位论文 件类型,j 2 e e 容器可分为以下几种: 客户容器:客户容器管理所有j 2 e e 应用程序中客户端组件的执行,应用 程序客户端和它们的容器运行在j 2 e e 客户端上。 w e b 容器:w 曲容器管理所有j 2 e e 应用程序中w 曲组件的执行,w 曲 组件和它们的容器运行在j 2 e e 服务器上。 e j b 容器:h b 容器管理所有j 2 e e 应用程序中日b 组件的执行,邵b 组 件和它们的容器运行在j 2 e e 服务器上。图2 5 显示了j 2 e e 组件与对应容器 的安装部署关系。 , j 2 e e 服务器、 i 满览器b l s e 州e tii 肘黄掰i li l 。 w e b 密器 誊l 、 应用稷痔 客户端 应用程缪客 户端容嚣 l 嚣j 丑i 组件 i f i 嚣j b 容器 客户端枫嚣 2 5 ,2j 2 e e 月昆务 图2 5j 2 e e 组件与对应容器的关系 j 2 e e 服务器提供了方便编程的各种服务技术,这些技术不用开发者自己开 发,它们为开发基于w e b 的多层应用提供了支持,在w 曲应用中通过调用相 应的a p i 使用这些技术【2 1 。 1 安全服务:允许开发人员配置w 曲组件或e j b 组件,这样只有被授权 的用户才可以访问系统资源。每一客户属于一个特定的角色,而每个角色只允 许激活相应的特定方法。开发人员在部署描述文件中声明角色和允许被激活的 方法。 2 事务服务:允许开发人员指定组成一个事务中所有方法间的关系,这 1 2 武汉理工大学硕士学位论文 样一个事务中的所有方法被当作一个完整的独立单元。当客户端激活一个e j b 中的方法时,容器介入特定的事务管理。由于事务交由容器管理,因而,在 e j b 中,开发人员不必对事务的边界进行编码处理。 3 j n d i 命名和目录服务:为企业内的多重名字和目录服务提供一个统 的接口,这样应用程序组件就可以直接访问名字和目录服务。 4 数据库连接池模型:获取数据库连接是一项极为耗时的工作,而且连 接数极为有限。容器通过管理连接池来缓和上述问题。采用该模型,e j b 可从 连接池中迅速获取数据库连接,并在b e a n 释放连接后,将连接“放回”连接 池中,以供其他b e 蛐使用。 2 6 本章小结 j 2 髓技术在j 2 s e 平台的基础上添加了大量的企业级a _ p i 和功能,为构建具 有可扩展性、灵活性、易维护性的企业级应用系统提供了良好的机制。基于组 件的j 2 e e 平台,为开发w e b 应用提供了可靠、安全便捷的开发与运行环境。本 章介绍了j 2 髓的分布式四层应用模型包括客户层、w 曲层、业务层和e i s 层,并 对它提供的各种组件技术、容器与服务进行了论述。 1 3 武汉理工大学硕士学位论文 第3 章j 2 e e 平台中m v c 设计模式的应用 3 1j 2 e e 设计模式与开发框架 3 1 1 设计模式 设计模式的一套被反复使用,经过分类编目,广为人知的代码设计经验的 总结。设计模式是从经验中总结出来的,经过证实的方案,模式只有经过在实 际系统中多次验证才能成为模式。随着面向对象技术的发展,对软件可重用性 的要求越来越高,就必须对以前的积累的面向对象编程经验加以总结和归纳, 这些设计经验就可以称之为设计模式。 专家c m s t o 曲e r 给出一个广泛意义上的设计模式概念:“每一个模式描述 了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这 样,你就能一次又一次的使用该方案而不必做重复劳动”。具体到设计面向对 象软件这一领域,可以这样认为:设计模式就是对被用来在特定场景下解决一 般设计问题的类和相互通信的对象的描述。每一个设计模式都有系统命名、解 释和评价了的面向对象系统中一个重要的和重复出现的设计【引。 设计模式可以有助于更加简单方便地重用成功的设计和体系结构,将已证 实的技术表达成设计模式,也会使新系统开发者更加容易理解其设计思路;同 时设计模式还可以有助于选择有利于系统重用的选择,避免设计损害了系统重 用性。最后,通过提供一个显示类和对象作用关系以及它们之间潜在联系的说 明规范,设计模式甚至能够提高己有系统的文档管理和系统维护的有效性。总 之,设计模式可以帮助设计者更快更好地完成系统设计。 一般而言,一个模式有四个基本要素1 4 j : 1 模式名称( p a t t e mn 锄e 1 :一个助记名,它用一两个词来描述模式的问 题、解决方案和效果。命名一个新的模式增加了人们的设计词汇。设计模式允 许人们在较高的抽象层次上进行设计。模式名可以帮助人们思考,便于人与人 交流设计思想和设计结果。 2 问题f p r o b l e i n ) :描述了应该在何时使用模式。它解释了设计问题和问 题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法 等。有时候,问题部分会包括使用模式必须要满足的一系列先决条件。 1 4 武汉理工大学硕士学位论文 3 解决方案( s 0 1 u t i o n ) :描述了设计的组成成分,它们之间的相互关系及 各自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所 以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象 描述和怎样用一个具有一般意义的元素组合( 类或对象组合) 来解决这个问题。 4 效果( g o n s e q u e n c e s ) :描述了模式应用的效果及使用模式应权衡的问 题。尽管在描述设计决策时,并不总提到模式效果,但它们对于评价设计选择 和理解使用模式的代价及好处具有重要意义。软件效果大多关注对时间和空间 的衡量,它们也表述了语言和实现问题。因为复用是面向对象设计的要素之 一,所以模式效果包括它对系统的灵活性、扩充性和可移植性的影响,显式地 列出这些效果对理解和评价这些模式很有帮助。 不同的观点会影响什么是设计模式的解释。上面把设计模式处理到一定的 抽象程度,它不用于直接编码或类重用,也不是复杂到可作为一个完整的应用 或子系统的领域专用的设计,而是对一定的对象与类的关系进行描述,进而可 对

温馨提示

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

评论

0/150

提交评论