已阅读5页,还剩72页未读, 继续免费阅读
(计算机应用技术专业论文)基于j2ee的web应用框架的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学硕士学位论文 摘要 随着企业对软件需求的不断增长,应用系统的功能越来越强大,软件的结 构也越来越复杂。软件公司一方面需要实现这些复杂的功能,另一方面需要迅 速地推出产品,以减少成本、应对激烈的市场竞争。因此,如何构造一个既能 够响应大量的客户端用户,又能够安全稳定地运行,同时功能强大,应用灵活, 开发简便的w e b 应用系统是当前i n t e m e t 技术发展的热点之一。 如今,j 2 e e 平台已经日趋成熟,并得到广泛应用,越来越多的开发人员使 用基于j 2 e e 的w e b 应用框架。框架为w e b 应用提供了预备的软件架构和相关 的软件包,它大大提高了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 等, 这些框架都已经比较成熟,而且在实际中得到了广泛的应用。但是,它们都存 在一个共同的问题就是学习周期比较长,不易理解和掌握,对于那些初涉j 2 e e 项目开发的开发人员来说,熟练应用这些框架并不是一件容易的事。 w e b f r a m e w o r k 框架就是基于上述原因而产生的。w e b f r a m e w o r k 框架基于 j 2 e e 规范,实现了m v c 设计模式,框架在结构上分为数据层、业务逻辑层和 表示层。此框架具有运行稳定、响应速度快、扩展性好、方便维护、易于学习 掌握等特点。运用此框架进行w e b 应用开发时,可以缩短项目开发周期、节约 资金、降低风险。 本文首先介绍了j 2 e e 的相关理论,然后详细阐述了w e b f r a m e w o r k 框架各 层的实现原理及执行流程,最后简要地介绍了运用此框架开发中远航运管理系 统的过程。 关键词:w e b 应用,j 2 e e ,框架,m v c ,w e b f r a m e w o r k 武汉理工大学硕士学位论文 a b s t r a c t w i t ht h ei n e a s eo ft h ee n t e r p r i s en e e df o rs o f t w a r e ,t h ef u n c t i o no fa p p l i c a t i o n s y s t e mi ss t r o n g e ra n dt h es t r u c t u r eo fs o f t w a r ei sa l s oc o m p l e xm o r ea n dm o r e s o f t w a r ec o m p a n i e sh a v et oi m p l e m e n tt h e s ec o m p l e xf u n c t i o n s o nt h eo t h e rh a n d , i tm u s ta c c o m p l i s hi tm i s s i o nr a p i d l yi no r d e rt or e d u c ec o s ta n dc o p ew i t ht h ec r u e l c o m p e t i t i o n s oi ti so n eo ft h eh o ts p o t sa b o u ti n t e r a c tt e c h n o l o g yh o wt ob u i l da w e ba p p l i c a t i o ns y s t e mw i t hs t r o n gf u n c t i o n sa n du s ef l e x i b l ew h i c hc a nr e s p o n da l a r g en u m b e r o fc l i e n t sa tt h es a m et i m ea n dr n ns a f e l ya n ds t a b l y n o w , j 2 e ea r ec o m et om a t u r i t yd a yb yd a ya n du s e dw i d e l y m o r ea n dm o r e d e v e l o p e r sa r eu s i n gw e bf r a m e w o r kb a s e do nj 2 e e f r a m e w o r kb o o s t sh u g e l yt h e r a p i d i t ya n de f f i c i e n c yo fw e bd e v e l o p m e n tb yr e a d y - m a d es o f tp a c k a g e s t od e v e l o p aw e b a p p l i c a t i o nb a s eo no n ef r a m e w o r k b u tb e g i nf r o mz e f o i t 锄s h o r t e nt h et i m e o fd e v e l o p m e n ta n dr e d u c ed e v e l o p m e n tr i s ka n di m p r o v et h es t a b i l i t yo ft h e a p p l i c a t i o ns y s t e m t h e s ed a y s t h e r ea r em a n yp o pw e bf r a m e w o r k 墨s u c ha ss t r u t s 、s p r i n g 、 h i b e r n a t ee t c t h e s ef r a m e w o r ka r ea l r e a d yv e r ym 砒u r ea n dh a v e b e e nu s e dw i d e l y a li np r a c t i c e b u t t h es a m e p r o b l e m st ot h e ma r ed i f f i c u l tt ol e a r na n dg r a s pe s p e c i a l t ot h o s eb e g i n n e r sa tj 2 e e w e b f r a m e w o r ki sb o mb e c a u s ea b o v et h er e a s o n s w e b f r a m e w o r k , b a s e do n t h ej 2 e ep l a t f o r m ,i saf r a m e w o r ki m p l e m e n t e dt h em v cd e s i g np a t t e r n t h e f r a m e w o r ki sm a d eu pb yd a t at i e r , b u s i n e s s1 0 9 i ct i e ra n ds h o wt i e r i ti se x p a n d a b l e , s i m p l ya n dr u ns t a b i l i t y , r e s p o n s er a p i d l y , m a i n t e n a n c ee a s i l y t od e v e l o paw e b a p p l i c a t i o ns y s t e mb a s eo nw e b f r a m e w o r kc a ns h o r t e nd e v e l o p m e n tt i m e ,s a v ec o s t a n dr e d u c er i s k t h i st h e s i si n t r o d u c e st h et h e o r yo fj 2 e ef i r s t ,t h e ne x p a t i a t et h ed e s i g n p r i n c i p l eo fe a c hl a y e ra n ds e q u e n c eo fr n n a tl a s t , t h et h e s i si n t r o d u c e sb r i e f l yt h e p r o c e s so fd e v e l o p i n gt h ec o s c os h i p p i n gm a n a g e m e n ts y s t e ma c c o r d i n g t o w e b f r a m e w o r k r k e yw o r d s :w e ba p p l i c a t i o n , j 2 e e , f r a m e w o r k , m v c , w e b f r a m e w o r k 武汉理工大学硕七学位论文 第1 章绪论 1 1 课题研究的目的和意义 随着 o t c m e t 和w e b 技术的发展,w e b 应用系统在i n t e m e t 上的使用也越来 越广泛。w e b 应用不再是仅仅具有静态发布信息的简单功能,而且被要求具有 实时动态处理交互信息的能力,而且此要求还在不断的变化和提高。因此,如 何才能方便、快捷地开发出功能更加强大,应用更为灵活、开发更为简单的w e b 应用系统也就越来越成为一个倍受人们关注的课题。 j 2 e 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 ) 软件体系结构,提供了一种基于组件 的方法来设计、开发、装配和部署企业级应用程序,使得快速设计和开发企业 级应用程序成为可能。j 2 e e 为w e b 应用开发提供了良好的技术路线,而w e b 应用框架技术是利用面向对象的软件复用技术解决w e b 应用领域相关问题的一 种框架技术。它充分利用面向对象的软件复用技术解决了w e b 应用领域的特定 问题,为具体开发提供了特定类型的组件,具有可复用性。 软件构件化是软件工业发展的大趋势。工业化的软件复用已经从通用类库 进化到了面向领域的应用框架。应用框架的复用己成为软件生产中最有效的复 用方式之一。随着b s 应用系统的不断普及和发展,越来越多的w e b 应用框架 被引入系统的开发过程中,并直接影响到系统的开发效率、可扩展性、可维护 性、稳定性以及安全性等方面。 随着软件业对w e b 应用框架需求的增加,涌现出许多优秀的w e b 应用框架, 比如针对表示层的s t r u t s 、j s f 、s p r i n g 、w e b w o r k 等;针对持久层的h i b e r n a t e 、 t o r q u e 、i b a t i s 等。它们面向不同的应用规模和领域,各有优缺点。但是,这 些框架有一些共同的特点就是学习周期较长,配置较为复杂,只适用于某一层 面,基于上述原因,本文给出了一种易于学习掌握功能全面的框架一一 w 曲f r a m e w o r k 。 w e b f r a m e w o r k 适用于业务种类多,数据量较大,业务需求变化快等特点的 领域,而且此框架具有功能全面、运行稳定、响应速度快、扩展性好、配置简 单、易于学习掌握等优点。使用此框架进行w e b 应用开发时,可以缩短项目开 武汉理工大学硕士学位论文 发时间,降低难度,节省资金。 1 2 国内外研究现状 1 9 9 5 年j a v a 面世后,s u n 便靠a p p l e t 抢占了w e b 前端市场,但f l a s h 的 出现却让a p p l e t 失去了统治地位。于是s u n 在1 9 9 7 年发布了第一个w e b 服务 器( j a v aw e bs e r v e r ) 及应用的s e r v l e ta f i 。s e r v l e t 可以通过纯j a v a 语言来编写 企业w e b 应用,s e r v l e t 从厂商急需角度出发,迅速的成为了企业应用解决方案 的标准。虽然s e r v l e t 通过j a v a 这种高级语言来进行编写,而最终是展示给用户 的,需要有良好的用户界面。这就需要支持h t m l 等w e b 脚本,可是s e r v l e t 却不能良好的嵌入h t m l 等前端代码,开发起来非常复杂。基于此种原因,s u n 在1 9 9 8 年推出j s p ( j a v as e r v e rp a g e s ) 。 s u n 凭借s e r v l e t 和j s p 技术,迅速的占领了绝大部份的企业市场份额。2 0 0 3 年s u n 推出j s p2 0 ,同时推出的j s t l ( j a v a 标准标记语言) 取代j s p 表达式 的弱点,更进一步简化j s p 的编写。j s p 慢慢变成一种非常成熟的w e b 技术, j s p 凭借其技术成熟,稳定,及j a v a 的强大功能和跨平台能力成为w e b 企业应 用的王者。 j s p 是一项成功的技术,它功能强大,具有高稳定性和可靠性。但是他也具 有定的复杂性,难以维护。起初,所有的业务方法,数据库连接、访问的代 码都包含在j s p 页面里。开发人员既是u i 设计者又是程序员。同时各种各样的 业务代码写进j s p 页面中,相同的功能代码可能需要编写多次,代码无法重用, 如果后期因为业务的变动而进行维护时,对开发人员来说就非常难以实现。 随后w e b 开发进入m o d e l 2 时代,也就是m v c 模式的应用时代,m v c 模 式可以使模型、视图、控制分离出来。m o d e l 2 的运用,对w e b 开发带来了一次 全新的变革,但是仍然面临着许多问题。有太多的s e r v l e t 类,一个请求对应着 一个s e r v l e t 类。页面流程的控制全部通过硬代码写死在s e r v l e t 类中,每一个 s e r v l e t 类都需要在w e b x m l 中进行配置,不能很好的支持国际化等。后来人 们通过前端控制器模式来解决了这样问题,就是由一个s e r v l e t 来响应所有的请 求。根据不同的请求参数来调用不同的服务方法。这样有效的减少了s e r v l e t 类。 几乎现在所有的w e b 框架都是采用前端控制器和m v c 模式的运用。在这样的 背景下,w e b 框架应运而生,s t r u t s 最先面世,w e b w o r k 等纷纷涌现。开发者采 2 武汉理工大学硕士学位论文 用框架大大的简化了w e b 应用的开发,加快了开发的速度和质量。 s t r u t s 采用前端控制器模式和m v c 模式进行设计。强制开发人员以m v c 的理念来进行w e b 开发,把表现层与业务层进行分离。s t r u t s 提供了丰富的标签 库,在j s p1 i 时代,j s p 页面都是通过j s p 表达式进行编写。虽然采用“ ” 的j s p 表达式功能非常强大,但是调试十分的麻烦,理解也十分的困难,一般 的页面人员几乎无法胜任。而s t r u t s 此时提供的标签库类似于h t m l 的标记, 对开发人员更为友好,易于理解和编写。 s t r u t s 提供了一个页面流程控制的功能,而不是把页面的转向写死在代码中。 每个请求的页面输入和页面转发都配置在s t r u t s - c o n f i g x m l 中。 s t r u t s 支持自动数据绑定,通过一个a c t i o n f o r m 来实现。把页面的数据自动 绑定成p o j o ( p l a i no l dj a v ao b j e c t ) 对象。并支持数据检验。s t r u t s 提供了国 际化的支持,可以很容易的让w e b 系统应用于多种语言版本的要求。 所以s t r u t s 一推出就受到了开发人员的喜爱,并迅速流行起来。s t r u t s 是目 前使用最多,流行时间最长的j a v a 开源w e b 框架。 尽管s t r u t s 取得了成功,但是它仍然有很多的不足。s t r u t s 也看到了自身存 在的缺陷,并不断进行改进。2 0 0 5 年1 1 月,w e b w o r k 项目负责人p a t r i c kl i g h t b o d y 宣布w e b w o r k 会逐渐整合进s t r u t s ,最终形成“s t r u t s a c t i o nf r a m e w o r k 2 。0 ”,在 这次合并的基础上s t r u t s 已经提出了自己未来的新名“s t r u t st i ”。全新的s t r u t s 面将以w e b w o r k 为c o r e ,完全向后兼容s t r u t s1 x 并集成a p a c h eb e e h i v e p a g ef i o w ,并使用i a v a5 的a n n o t a t i o n s 代替繁杂的配置文件,目标是如r u b y o nr a i l s 、n a n o w e b 一样快捷简单。整合了w e b w o r k 的s t r u t s 2 将会更简单易用, 功能更强大。 w e b w o r k 是一种比s t r u t s 更易于使用,基于c o m m a n d 模式的开源w e b 框 架。w e b w o r k 结构十分的简单,也提供了丰富的标签库,w e b w o r k 的拦截器也 十分的优秀。并且w e b w o r k 是非线程的。w e b w o r k 提供了一个i o c 容器,支持 国际化,并且支持多种视图技术。可以说w e b w o r k 是一个非常优秀的w e b 框架。 但是w e b w o r k 的开发文档非常少,客户端验证技术也不太成熟,v e l o c i t y t e m p l a t e s 技术还是太复杂,不提供对组件的封装,而s t r u t s 的t i l e s 更好一点。 2 0 0 1 年r o dj o h n s o n 编写一本书叫( j 2 e e 设计开发编程指南。这本书的 内容构成了s p r i n g 框架的雏形。接着r o dj o h n s o n 又编写了另外一本书( j 2 e e w i t h o u t 日b ,并同时推出s p r i n g 框架。这两本书在业界迅速引起了轰动,为 3 武汉理工大学硕士学位论文 s p r i n g 的推出作了很好的铺垫。s p r i n g 引入i o c ( 控制反转) 的概念,采用p o j o 对象,a o p 支持和轻量级容器来开发企业应用,这些正是业界多年来一直苦苦 寻找的解决方案。s p r i n g 一推出就红遍了大江南北,迎来了j a v a 企业开发的春 天。 在此之后,国外又陆续推出了诸如j s f 、h i b e r n a t e 等等应用于不同层面上的 框架,大量的开源组织和j a v a 爱好者正在为这些框架的不断成熟和完善而努力 着。 国内在这方面的发展相对较为缓慢,但随着j 2 e e 技术的日益成熟,有许多 j a v a 爱好者正在为开源框架的开发而努力。现在比较成熟的开源框架有j d o n f r a m e w o r k 、e a s y j w e b 等等。 j d o nf r a m e w o r k 是一套适合开发中小型j 2 e e 应用系统的快速开发框架、也 是一套i o c a o p 框架、更是一套符合当前国际水平的、面向组件开发的、国人拥 有自主产权的中间件产品;是中国第一个开源框架,也是国内先进的组件、构 件工具。 e a s y j w e b 是基于j a v a 技术、应用于w e b 应用程序快速开发的m v c 框架, 框架设计构思来源于国内众多项目实践,框架充分借鉴了当前主要流行的开源 w e b 框架( s t r u t s 、w e b w o r k 等) ,吸取了其优点及精华,利用v e l o c i t y 作为模板 页面引擎,是一个实现了页面及代码完全分离的m v c 开发框架。 4 武汉理工大学硕士学位论文 第2 章基于j 2 e e 和m v c 的w e b 应用 2 1 j 2 e e 体系简介 2 1 1j 2 e e 平台规范 j 2 e e 是使用j a v a 技术开发企业级应用的一种事实上的工业标准,它是j a v a 技术不断适应和促进企业级应用过程中的产物。目前,j a v a 平台有三个版本: 适合用于小型设备和智能卡的j 2 m e 、适合于桌面系统的j 2 s e 和适用于企业级 应用的j 2 e e 。2 0 0 5 年j a v a o n e 大会召开后,s u n 将j a v a 平台的三个版本分别改 名为:j a v a m e 、j a v a s e 、j a v a e e 。j 2 e e 的目的是为了克服传统的c l i e n t s e r v e r 模式的弊端,迎合b r o w s e r s e r v e r 架构的潮流,为应用j a v a 技术开发服务器端 应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级 平台,从而简化企业级应用的开发、管理和部署。 j 2 e e 是一个标准,而不是一个现成的产品。各个平台开发商按照j 2 e e 规范 分别开发了不同的j 2 e e 应用服务器,j 2 e e 应用服务器是j 2 e e 企业级应用的部 署平台。由于它们都遵循了j 2 e e 规范,因此,使用j 2 e e 技术开发的企业级应 用可以部署在各种j 2 e e 应用服务器上。 j 2 e e 规范是一种用于简化分布式企业级应用开发与部署的基于组件的模 式。它提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次分 布式应用模型是根据功能把应用逻辑分成多个层次,每个层次支持相应的服务 器和组件,组件在分布式服务器的组件容器中运行,容器间通过相关的协议进 行通讯,实现组件间的相互调用【1 1 。 j 2 e e 的基础就是核心j a v a 平台或j a v a2 平台的标准版,j 2 e e 不仅巩固了 标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库 的j d b c a p i ,c o r b a 技术以及能够在i n t e r n e t 应用中保护数据的安全模式等等, 同时还提供了对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 s e r v l e t a p i ,j s p ( j a v as e r v e r p a g e s ) 以及x m l 技术的全面支持。其最终目的就是成为一个能够使企业开发 者大幅度缩短投放市场时间的体系结构。 5 武汉理工大学硕士学位论文 j 2 e e 体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用 性、高可靠性以及可扩展性的应用的需求【2 l 。通过提供统一的开发平台,j 2 e e 降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成的强有力 支持,完全支持e n t e r p r i s ej a v a b e a n s ,有良好的向导支持和应用部署功能,添加 了目录支持,增强了安全机制,提高了性能。j 2 e e 为搭建具有可伸缩性、灵活 性、易维护性的商务系统提供了良好的机制。 2 1 2 j 2 e e 体系的技术优势与不足 j 2 e e 为搭建具有可伸缩性、灵活性、易维护性的企业应用系统提供了良好 的机制【3 i 【4 1 : 1 保留现存的r r 资产 j 2 e e 架构可以充分利用用户原有的投资,这是因为j 2 e e 拥有广泛的业界支 持和一些重要的企业计算领域供应商的参与。每一个供应商都对现有的客户提 供了不用废弃已有投资、进入可移植的j 2 e e 领域的升级途径 2 高效的开发 j 2 e e 允许公司把一些通用的、很繁琐的服务器端任务交给中间件供应商去 完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发 时间。 3 支持异构环境 j 2 e e 能够开发部署在异构环境中的可移植程序。基于j 2 e e 的应用程序不依 赖任何特定操作系统、中间件、硬件。因此,设计合理的基于j 2 e e 的程序只需 开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。 4 可伸缩性 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去 满足那些在他们系统上进行商业运作的大批新客户。j 2 e e 领域的供应商提供了 更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署。 这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需 要。 5 稳定的可用性 一个服务器端平台必须能2 4 小时运转以满足公司客户、合作伙伴的需要。 j 2 e e 部署到可靠的操作环境中,他们支持长期的可用性。 6 武汉理工大学硕士学位论文 基于层次化组件模式的j 2 e e 平台把业务逻辑和底层网络技术分离开来,具 有可伸缩性、扩展性、易开发性和易维护性,己经成为企业级商业分布式网络 计算的事实标准。j 2 e e 是大量业内技术专家、教育专家集体智慧和经验设计出 来的一套先进、完美、实用的规范,遵从这个规范的开发者将得到行业的广泛 支持,使企业级应用的开发变得简单、快速。 但是,随着应用规模的越来越大,软件复杂性的越来越高,j 2 e e 的不足也 逐渐暴露出来。应用系统的开发一般是基于过程的。通常由一组j s p 页面来实 现一个业务流程,流程控制的代码和业务逻辑的代码混杂在一起,j s p 页面中嵌 入了大量的j a v a 语句,当系统业务流程发生改变时,就需要对多处代码进行修 改,这样非常不利于应用系统的扩展和更新。j 2 e e 对于表现逻辑和业务逻辑并 没有进行强制性的分离,虽然提出了用j s p ,s e r v l e t e j b 的结构来分离表现逻辑、 流程控制和业务逻辑,但很多开发人员还是把表现逻辑和部分业务逻辑都放在 j s p 页面中,使j s p 的代码变得庞大而复杂,开发人员无法有效地分工。同时, 企业级应用应该提供各种类型的界面。如采用h t m l 前端与w e b 方式的用户交 互;采用w m l ( w i r e l e s sm a r k u pl a n g u a g e ) 与无线应用客户交互;采用以x m l 为基础的w e b 服务为供应商服务。这种情况下,尽管业务逻辑相同但表现逻辑 却完全不同,如何尽量实现代码的重用,避免重复劳动也是需要关注的问题。 2 2j 2 e e 的多层体系结构 2 2 1 层的概念 多层架构的概念已经发展了2 0 多年,经历了与编程语言相似的进化过程。 多层架构的主要目的是在客户端之间进行资源共享,这是软件开发的基本设计 哲学。 层是一个抽象的概念,它定义了一组为其客户提供一种或多种服务的技术 1 5 l 。层的结构组织就如同一个大公司,根据各个部门的功能不同而分为不同的层, 在公司的最底层是服务设施,包含维护办公室建筑所必需的资源,如电力设备、 通风设备、电梯服务、电话服务等;在公司的第二层是支持性资源,如会计、 供应、程序和其他支持公司主要活动的资源;在支持层上面是生产层,生产层 包含生产产品和公司销售服务的必需资源;最高层是市场层,包含用来决定卖 7 武汉理工大学硕士学位论文 给消费者产品与服务的资源。 当某个资源发送一个服务请求到服务提供者时( 也可称做是一个服务) ,这 个资源被认为是客户端。服务是指接收和完成客户端请求的任意资源,资源本 身也许需要请求其他资源来完成客户端的请求。 在多层架构里,每层都提供一些服务,像软件对象、数据库管理系统或者 与原有系统的连接。企业的信息技术部门使用多层架构是因为在其开发灵活的、 可伸缩的、能响应客户端期望应用程序时,多层架构是一种经济的方法。应用 程序的功能被划分为与某一层相关联的逻辑组件。每个组件是一个服务,它的 创建和维护独立于其他的服务。服务与通信协议绑定在一起,这个协议使服务 可以接收其他服务发送的消息和向其他服务发送信息。 客户端发送请求给服务并接收服务对请求的处理结果,客户端并不关心服 务如何提供结果。这意味着程序员可以快速地开发一个客户端程序,按规定的 格式向已经存在于多层架构里的服务发送请求。这些服务已经在其内部建立了 完成客户端程序请求的功能。当功能发生变化时,可以对服务进行修改而不影 响客户端程序。程序员可以更改服务中的业务逻辑,而不必修改客户端程序。 这些变化对客户端程序来说是透明的。 2 2 2j 2 e e 的体系结构 2 2 2 1j 2 e e 典型的四层结构 j 2 e e 规范提供了四个层次及相应的组件,它们分别是运行在客户端机器上 的客户端层( c l i e n t t i e r ) 、运行在w e b 服务器上的w e b 层( w 曲面c r ) 、运行 在f 3 b 服务器上的业务层( b u s i n e s s 啊c f ) 和运行在e i s 服务器上企业信息系 统层( e n t e r p r i s ei n f o r m a t i o ns y s t e mt i e r ) 。其中w e b 层和业务层共同组成了 三层j 2 e e 应用的中问层,其他两层是客户端层和存储层或企业信息系统层【6 1 。 一般情况下,许多开发商把w e b 服务器和f _ 2 b 服务器产品结合在一起发布, 称为应用服务器或j 2 e e 服务器。 其中第二层和第三层合称为中问层( m i d d l et i e r ) 。 j 2 e e 的四层体系结构如图2 - 1 所示: 8 武汉理工大学硕士学位论文 j 2 e e 应用1 厂赢两 i ,_ j j 2 e e 应用2 眄磊丽 i j 客户层 - 7 客户端机器 = 层卜一 业务逻辑层1 日s 层 - 7 数据库服务器 图2 - 1j 2 e e 四层体系结构 2 2 2 2 改进的j 2 e e 五层体系结构 j 2 e e 的四层体系结构使业务逻辑和表示逻辑分离开来,网页开发人员关注 表示逻辑的实现,后台开发人员关注业务逻辑的实现,大大提高了开发效率。 但是,这种体系结构仍然没有解决所有的问题。业务逻辑层不仅负责业务逻辑, 还直接访问数据库,实现对业务数据的保存、更新、删除、查询等操作。因此 业务逻辑代码和数据操作代码混杂在一起,当数据库平台或数据源发生改变时, 修改起来相当麻烦。 为了将数据访问细节和业务逻辑分开,可以把数据访问作为单独的数据持 久层分享出来,形成一个五层的体系结构川,所有与数据源相关的操作,如增加、 删除、修改、查询以及事务管理、数据库连接池管理、并发性控制、异常处理 等都放在数据持久层里去。如图2 - 2 所示。 客户层 客户端机嚣 习1 9 嘲务器 业务逻辑层 if f 瞻落墨 数据持久层l e 俘层 - 7 数据库服务嚣 图2 - 2j 2 e e 五层体系结构 9 一一一一一一 一一 一一一 武汉理工大学硕士学位论文 弓l 入数据持久层有如下优点1 8 l : 1 将数据持久逻辑和业务逻辑分离,业务逻辑层通过数据持久层与数据库 交互,而不是在业务代码中夹杂大量访问数据源的代码。各层功能简洁专一。 2 对业务逻辑层隐藏了数据库平台。将所有数据连接逻辑封装到数据持久 层中,业务逻辑的开发人员不需要知道数据库平台的类型以及连接数据库时所 需的任何安全信息( 用户i d 与口令) 。 3 抽象数据库中存储数据的物理细节和数据实体之间存在的关系。建立在 五层体系结构之上的应用程序不必直接对数据库发出s q l 查询,不必知道数据 的批处理结构,而用数值对象访问数据库。 4 简化开发过程,隐藏打开数据库连接、发出数据读取与操纵命令和事务 管理的细节。 2 2 3j 2 e e 组件 j 2 e e 应用是由组件组成的,组件是一段可重用的代码,是一个自我封闭且 具有独立功能的软件单元。j 2 e e 运行环境定义了三种类型的组件,它们分别是: 运行在客户机上的客户端组件、运行在w e b 容器上的w e b 组件、运行在f a b 容 器上的业务逻辑组州9 】。 2 2 3 1 客户端组件 客户端组件用于与企业信息系统的用户进行交互以及显示根据特定商务规 则进行计算后的结果。j 2 e e 应用程序可以是基于w e b 方式的,也可以是基于传 统方式的。在一个基于w e b 的j 2 e e 应用中,用户的浏览器在客户层中运行,并 从一个w e b 服务器上下载w e b 层中的静态h t m l 页面或由j s p 或s e r v l e t 生成 的动态h t m l 页面。在一个不基于w e b 的j 2 e e 应用程序中,一个独立客户程 序,不运行在h t m l 页面中,而是运行在其它一些基于网络的系统( 比如手持 设备或汽车电话) 中的a p c e t 程序中,a p p l e t 在客户层中运行,并在不经过w e b 层的情况下访问企业b e a n s 。并且客户层中可能包括j a v a b e a n s 类来管理用户输 入,并将该输入发送到企业层,由在企业层中运行的e n t e r p r i s eb e a n 类来处理。 客户端组件又可分为应用程序客户端、w e b 浏览器、a p p l e t 小应用程序和 j a v ab e a n 组件( 埘。 1 应用程序客户端 武汉理工大学硕士学位论文 应用程序客户端是一个j a v a 程序,它在应用程序客户端窗口内运行,应用 程序客户端窗口指的是j a v a 2 运程环境( j a v a 2 r u n t i m e e n v i m n m e n t ,j r e ) 标准 版。应用程序有它自己的用户界面,可以访问多层架构中的各层,通常应用程 序只访问w e b 层。 2 w e b 浏览器 用户的w e b 浏览器从w e b 层下载静态或动态h t m l 文档、x m l 或其它格 式的页面。运行在w e b 层中的s e r v l e t 和j s p 页面会产生动态w e b 页面。 3 a p p l e t 小应用程序 从w e b 层下载的h t m l 页面可以包含嵌入的a p p l e t 。所谓a p p l e t 是使用j a v a 程序设计语言编写,可以在嵌入w e b 浏览器的j a v a 虚拟机中运行的小应用程序。 4 j a v a b e a n 组件 为了管理应用程序客户端或a p p l e t 同j 2 e e 服务器上运行的组件之间的数据 交互,客户层有时需要包含基于j a v a b e a n s 规范的组件。j a v a b e a n 组件实际上就 是遵循一定的命名和设计规范的j a v a 类,包含成员变量,以及访问这些成员变 量的g e t 和s c t 方法。使用j a v a b e a n 组件可以简化设计和实现。同时一些集成开 发环境可以根据j a v a b e a n 的类文件,结合j a v a b e a n 组件规范,分析出b e a n 类 的成员变量和方法,并且可视的表示出来,形象,直观,大大加速了应用的开 发进度。 图2 - 3 演示了组成客户层的各种元素及其与w e b 层、业务层之间的关系。 客户端可以与j 2 e e 应用服务器上运行的业务层直接通信,或者通过w e b 层上的 j s p s e r v l e t 同业务层通信。 w e b 浏览器、w e b 页、 吲竺辛 a p p l e t 和可选的j 砌啪类 业务层 应用程序客户端以及其可 h 选的j a v a b e a n 类 y 1。一 j 2 e e 服务器 图2 - 3 客户组件与其它组件 l l 武汉理工大学硕士学位论文 2 2 3 2w e b 层组件 w e b 层组件用来产生表示逻辑,负责处理用户的输入和产生对客户端的响 应。j a v as e r v l e t 和j s p 是w e b 层组件l l o j 。w e b 层可能包含某些j a v a b e a n 对 象来处理用户输入,并把输入发送给运行在业务层上的e n t e r p r i s eb e a n 来进行 处理。图2 4 展示了w e b 层组件与客户层及业务层之问的关系。 j 2 e e 服务器 图2 _ 4w e b 层组件与其它组件 1 s e r v l e t 组件 s e r v l e t 是驻留在w e b 层的j a v a 类,运行于s e r v l e t 容器中,可以被s e r v l e t 容器动态加载,来扩展服务器的功能,并提供特定的服务1 1 1 l 。s e r v l e t 按照请求 响应的方式工作。当用户请求访问某个s e r v l e t 时,s e r v l e 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 对象。在s e r v l e t r e q u e s t 中封装了用户请 求信息,然后s e r v l e 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 对象传给用户所 请求的s e r v l e t 。s e t t l e r 把响应结果写到s e r v l e t r e s p o n s e 中,然后由s e r v l e t 容器 把响应结果传给用户。图2 - 5 显示了s e r v l e t 容器响应用户请求的过程1 1 2 j 。 图2 - 5s e r v l e t 容器响应用户请求的过程 s e r v l e t 也可称为“服务器小程序”,与j a v a 应用程序不同的是,它没有 武汉理工大学硕士学位论文 m a i n 方法,而是用一些特定的方法用于启动、执行和退出。通过使用s e r v l e t 可以与运行于客户端的a p p l e t 进行交互,也可以直接与h t m l 页、j s p 以及 其他s e r v l e t 进行交互。与传统的c g i 相比,j a v as e r v l e t 在处理同样的事务时 更高效、更强大,并且具有容易使用、容易移植的特点,使用费用也很低。在 传统的c g i 模式中,对于每一个h t r p 请求,服务器都要启动一个进程,如果 这个请求只是一个很简单的操作,那么所花费的代价就几乎都表现在服务器进 程的启动时间上了。而s e r v l e t 是建立在j a v a 虚拟机上的,每一个请求对应一 个更轻量级的j a v a 线程,这样在处理请求时就更具有灵活性,比如可以在若干 请求中保留对其他资源的控制等。s e r v l e t 除了具有j a v a 本身的许多优点外,还 提供一整套系统的数据结构自动分析功能,可以解析h t m l 表单的提交参数, 读取和设置h t r p 的头部信息,处理c o o k i e ,用户s e s s i o n 追踪,以及进行相 关操作。 利用s e r v l e t 可以较容易地做到一些普通c g i 很难做到甚至做不到的事 情,比如直接与网络服务器对话等。不同的s e r v l e t 之间可以进行一些资源的共 享,例如共享对数据库的连接等。此外,由于j a v a 本身的平台无关性,就使得 基于s e r v l e t 的j a v a 服务器有很强的适应能力【1 3 l 。 s u n 公司为s e r v l e t 程序提供了一个标准的a p i ( s e r v l e ta p i ) ,保证了程 序开发的一致性。s e r v l e ta p i 的最大优点就是它的协议无关性,因此其中并不 包含在网络上传输所有的协议、s e r v l e t 的加载方式及服务器环境等内容,这样 就使其很容易被嵌入到多种类型的服务器中。 然而,对于s e r v l e t 来说,尽管它提供了如此强大的功能和方便的易用性, 但是,在编写服务器端程序的时候,必须在s e r v l e t 代码中直接加入很多的 h t m l 代码,这对于程序的编写和维护来说,都是一个很大的负担,造成了程 序逻辑和页面显示的混淆。正是为了消除这种麻烦和不清晰的分离,s u n 公可 引入了一种新的编制服务器端页面显示的技术叫s p 技术。 2 j s p ( j a v as e r v e rp a g e s ) 组件 为了解决s e r v l e t 中页面显示和业务逻辑的分离,s u n 推出了j a v as e r v e r p a g e s ( j s p ) 技术。在这种新的技术中,j s p 提供了s e r v l e t 所有的好处,事实 上,j s p 在执行的时候,也是先编译成s e r v l e t 来执行的。这种技术采用的方式 是在传统的网页h t m l 中加入j a v a 程序片断( s c r i p t l e t ) 和j s p 标签,这样 就构成了j s p 网页。w e b 服务器在接受到用户的请求的时候,首先执行其中的 武汉理工大学硕士学位论文 程序片断,然后将执行结果以h t m l 的方式返回给客户
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国珍香胶囊市场调查研究报告
- 2025年中国牛奶提取液市场调查研究报告
- 2025年中国液压杆端轴承市场调查研究报告
- 2025年中国泡沫塑料包装箱市场调查研究报告
- 2025年中国段差模市场调查研究报告
- 2025年中国医用卫生口罩市场调查研究报告
- 产后抑郁的识别与干预
- 手术患者的心理评估
- 小儿肠炎的护理案例分析
- 新生儿常见问题及处理方法
- 医疗设备维修保养及应急预案
- spss基础教案(2025-2026学年)
- 退伍保密课件
- 2025中国热带农业科学院热带生物技术研究所第一批招聘23人笔试试题(第1号)附答案解析
- 全基因组选择育种课件
- 乡镇人大培训课件
- 2025年全国汽车驾驶员(高级)职业技能考试题库(含答案)
- 2025年高考湖北卷物理真题(原卷版)
- 江苏省南通市2025年中考数学试卷附真题答案
- 2026公务员考试题及答案 行测 真题
- 危险性较大的分部分项工程安全管理规定(37号令及31号文)
评论
0/150
提交评论