(计算机应用技术专业论文)基于j2ee和mvc模式的web应用研究.pdf_第1页
(计算机应用技术专业论文)基于j2ee和mvc模式的web应用研究.pdf_第2页
(计算机应用技术专业论文)基于j2ee和mvc模式的web应用研究.pdf_第3页
(计算机应用技术专业论文)基于j2ee和mvc模式的web应用研究.pdf_第4页
(计算机应用技术专业论文)基于j2ee和mvc模式的web应用研究.pdf_第5页
已阅读5页,还剩91页未读 继续免费阅读

(计算机应用技术专业论文)基于j2ee和mvc模式的web应用研究.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第l 页 摘要 目前,由于i n t e r n e t 技术的迅速发展,w e b 应用的范围越来越广泛。但是, 在现有的w e b 应用系统中,普遍存在着程序可重用程度低、维护工作繁琐、应 变能力薄弱等不足。随着w e b 应用的需求越来越复杂,开发周期越来越紧迫, 且对系统的稳定性、扩展性和可维护性要求越来越高,如何进行合理地分层设 计,各层的框架如何搭建以及如何选择最合理的技术就变得尤为重要。 本文以笔者参与四川联通电子商务平台的网上商城项目的开发工作为背 景,探讨与w e b 应用开发相关的问题。 本论文反映的主要工作包括: 1 、简述了j 2 e e 平台及其各组件的作用。 2 、从w e b 应用的开发模式入手,分析了现有的两种开发模式,在对其进行比 较的基础上,引出并介绍了g v c 设计模式以及实现该模式的s t r u t s 框架,着 重于讨论s t r u t s 是如何实现m v c 模式以及s t r u t s 各组件是如何协同工作的。 3 、分析讨论了基于j 2 e e 的四层体系结构。同时,对各层的实现技术进行了总 结,作为w e b 应用技术选择的参考。 4 、基于上述分析,设计实现了四川联通电子商务平台的网上商城项目。其中, 整个系统采用上述四层体系结构进行分层及模块化设计。分别对w e b 层、业务 逻辑层、数据持久层和数据存储层等分层进行了详细设计,并实现了其典型功 能。 5 、简要讨论了系统的测试问题。分别说明了在不同测试环境下w e b 组件、e j b 组件的单元测试及整个系统的集成测试情况。测试结果表明,该系统基本达到 了设计需求。 6 、最后对系统优化问题进行了简单探讨。分析了如何使用其它的设计模式, 如d e l e g a t e 模式、s e s s i o nf a c a d e 模式、s e r v i c el o c a t o r 模式及d a t aa c c e s s o b j e c t 模式,以优化系统结构。 西南交通大学硕士研究生学位论文第1 l 页 综上所述,基于j 2 e e 平台和m v c 设计模式开发w e b 应用,不但能够有效 地解决传统w e b 应用开发中存在的问题,而且采用分层及模块化设计,使得系 统流程清晰,易于扩展和维护。同时,合理使用设计模式将对系统的优化起到 锦上添花的作用。 关键词:j 2 e e 平台;i v r v c :设计模式:s t r u t s 框架 西南交通大学硕士研究生学位论文第| | i 页 a b s t r a c t w i t hd r a m a t i cd e v e l o p m e n to fi n t e r n e tt e c h n o l o g y ,w e ba p p l i c a t i o n s h a v ed r a w n w i d e ra t t e n t i o nt h a ne v e rb e f o r e , n e v e r t h e l e s s ,l o w m a i n t a i n a b i l i t ya n dr e u s a b i l i t y ,a n di n f l e x i b i l i t ya r ev e r yc o m m o n p h e n o m e n ai nw e ba p p l i c a t i o n s c o n s e q u e n t l y ,h i e r a r c h i c a ld e s i g n i n g , t h ef r a m e w o r ko fe a c hs u b t i e r ,a n ds e l e c t i o no fd e v e l o p m e n tt e c h n o l o g y b e c o m em o r ea n dm o r ei m p o r t a n tw i t hc o m p l e x i t yo fr e q u i r e m e n ta n a l y s i s , c o n s t r a i n t so fr & dt i m ec y c l e , a n dr e q u i r e m e n t so fs y s t e ms t a b i l i t y , e x t e n s i b i l i t ya n dm a i n t a i n a b i l i t y t h i sd i s s e r t a t i o nf o c u s e so nt e c h n i q u e so fw e ba p p l i c a t i o n d e v e l o p m e n tb a s e do nt h ee x p e r i e n c eg a i n e di nd e v e l o p m e n to fc h i n a u n i c o ms i c h u a nb r a n c he c o m e r c ep l a t f o r m t h ew o r kp r e s e n t e di nt h i st h e s i si n v o l v e s : 1 d i s c u s s i o no nj 2 e ep l a t f o r ma n di t sc o m p o n e n t s 2 b r i e fd i s c u s s i o no nt h e m v cp a t t e r nw i t ha ne m p h a s i so nt h e “s t r u t s ” f r a m e w o r k ,i n c l u d i n gi t si m p l e m e n t a t i o ni s s u e ss u c ha sc o m p o n e n t c o o p e r a t i o n ,b a s e do nac o m p a r i s o nb e t w e e nt w ot y p i c a lp a t t e r n si nw e b a p p l i c a t i o nd e v e l o p m e n t 3 a n a l y s i so faf o u r t i e ra r c h i t e c t u r eb a s e do nj 2 e ep l a t f o r ma n d t e c h n i q u e so fs u b t i e rd e v e l o p m e n ta r ep r o v i d e da sab a c k g r o u n df o r s e l e c t i o no fr e l e v a n tt e c h n i q u e si nt h ea u t h o r sw o r k 4 af r a m e w o r ko fc h i n au n i c o ms i c h u a nb r a n c he - c o m m e r c ep l a t f o r m ,i n w h i c ht h ea u t h o rh a sb e e ni n v o i v e d ,b a s e do nf o u r t i e ra r c h it e c t u r e , i e w e bt i e r ,b u s i n e s sl o g i ct i e r ,d a t ap e t s i s t e n c et i e r ,a n dd a t a b a s e t i e r 5 p r a c t i c eo nu n i tt e s t i n g ( e g w e bc o m p o n e n ta n de j bc o m p o n e n t ) a n d i n t e g r a t i o nt e s ti sp r e s e n t e d ,w h i c hh a ss h o w nt h a tt h es y s t e mm e e t s t h ed e s i g nr e q u i r e m e n t sb o t hi nf u n c t i o n sa n dp e r f o r m a n c e 6 f u r t h e ri m p r o v e m e n ta n do p t i m i z a t i o nc o m b i n e dw i t ho t h e rd e s i g n p a t t e r n s ,s u c ha sd e l e g a t ep a t t e r n ,s e s s i o nf a c a d ep a t t e r n ,s e r v i c e l o c a t e rp a t t e r na n dd a t aa c c e s so b j e c tp a t t e r n ,i sp r o v i d e d f i n a l l y ,t h i sd i s s e r t a t i o nc o m e st oac o n c l u s i o nt h a tt h ea p p r o a c h a d o p t i n gt h ef o u r t i e ra r c h i t e c t u r eb a s e do nj 2 e ep l a t f o r ma n d f v c p a t t e r ni s ag o o dc h o i c ef o r d e v e l o p m e n to fw e ba p p l i c a t i o n s , c o n s i d e r i n gi t sf u n c t i o n a lc l a s s i f i c a t i o n ,s y s t e me x t e n s i b i l i t y ,a n d m a i n t a i n a b i l i t y a n dd e s i g np a t t e r ni sag o o dp l u s k e yw o r d s :7 2 e ep l a t f o r m ,m v c ,d e s i g np a t t e r n ,s t r u t sf r a m e w o r k 西南交通大学硕士研究生学位论文第1 页 1 1 课题研究的意义 第1 章绪论 随着网络技术的不断发展,互联网已经融入我们的生活,同时对未来社会 的发展产生巨大而深远的影响“1 。互联网构造了无限的信息资源,它的普遍使 用已经从根本上改变了人们的生活方式和工作方式,也改变了企业的经营方式 和服务方式。 随着i n t e r n e t 及全球信息网应用的快速发展,商业领域的销售、交易、 网络等各个领域都正在发生着空前的革命性的变化,越来越多的企业和商家都 想借助于i n t e r n e t 的无国界、无时间、无地域限制的便利环境来经营拓展商 务。电子商务这一新型商务模式已得到世界各国的普遍关注,它不仅仅是 i n t e r n e t 在商务领域的简单应用,更是一种新型的商务模式o3 ,它的推广彻底 改变了传统的旧的商务模式,引发一场新经济革命。 简单地说,电子商务是指在计算机和通信网络基础上,利用电子媒介实现 商业交换和行政作业的过程。它是9 0 年代初在欧美兴起的一种全新商业交易模 式,从售前服务到售后服务的相关各个环节全部或部分实现电子化、网络化、 自动化及高效化n ,。 在发达国家,电子商务发展空前繁荣,通过互联网进行交易已成为商业发 展的必然趋势基于电子商务而推出的种种解决方案,如商品交易系统方案、 金融电子化方案等,己形成了多种新型相关产业,给信息技术带来了许多的新 的机遇。在我国,电子商务的建设也已经开始,正在利用网络技术对传统商务 进行改造,虽属起步阶段,但其前景和市场需求相当广阔。正是由于电子商务 的重大意义,电子商务的应用开发也就显得尤为重要”1 。因此,如何进行电子 商务的应用开发,如何方便、快捷地构造出企业级电子商务应用系统已成为一 个目前急需解决的课题。 近年来,随着网络技术的迅速发展和j 2 e e 平台的广泛采用,基于w e b 技 术、尤其是多层w e b 技术开发电子商务系统越来越成熟、具体应用也越来越 西南交通大学硕士研究生学位论文 第2 页 广泛0 1 。而且,w e b 应用从过去的发布相对静态的内容发展到如电子商务等动 态交互信息的处理。与此同时,电子商务的发展对传统的w e b 技术提出了强有 力的挑战。由于电子商务信息处理的内部逻辑复杂,安全性要求苛刻,商务模 式发展变化快,这就要求w e b 技术提供足够的复杂度和灵活性以适应电子商务 的需求。 w e b 应用开发先后出现了c g i 、p h p 及j s v 技术等,这些技术的产生缓解了 w e b 编程的难度。但是它们有一个共同的弱点,就是未能将业务逻辑和界面显 示分离开来嘲。这就意味着,开发中各个小组之间相互依赖,不能做到各开发 小组并行开发,经常是每修改一处,都要涉及到几个小组之间的事情,牵一发 而动全身,大大增加了开发周期。代码的可读性、可维护性和可扩展性都非常 差,不利于后续的开发和维护工作。 综上所述,在现有的w e b 开发技术中,普遍存在着程序可重用程度低、 维护工作繁琐、应变能力较弱等不足。而且,目前w 曲应用的需求越来越复 杂,开发周期越来越紧迫,同时对系统的稳定性、扩展性和可维护性要求越来 越高,因此如何进行合理的分层设计以及各层的框架搭建和技术选择就变得尤 为重要。 本文以笔者参与四川联通电子商务平台的网上商城项目的开发工作为背 景,探讨与w e b 应用开发相关的问题。 1 2 国内外文献综述 近年来,随着网络技术的迅速发展和j 2 e e 平台的广泛采用,多层w e b 体 系结构逐渐发展成熟起来,w e b 应用的开发已成为主流。1 。但是,即使利用最 先进的软件平台j 2 e e ,开发这样的应用仍然是个难题。在多层w 曲体系结构 的设计中,普遍存在着程序可重用程度低、维护工作繁琐、应变能力较弱等不 足。同时,w e b 应用软件需要面对复杂的网络环境、多样化的用户需求、灵活 的业务模式、复杂的业务流程、众多的组织机构及层次、角色分工等问题,在 业务和技术上也是复杂多变的0 1 。因此,在基于组件的j 2 e e 平台充分内置了 灵活的情况下,如何组织应用程序以实现简单高效的应用程序升级、维护和扩 展,以及如何让不懂程序代码的人员避开程序数据,成为我们首先要解决的问 西南交通大学硕士研究生学位论文第3 页 题。而且,我们还要充分考虑到多层结构的特殊性:各层之间需要密切配合才 能完成最终功能,又要在实际开发中尽可能的使各层的开发相对独立,减少各 层之间的耦合程度,避免开发人员相互制约。 m v c 源于传统的面向对象语言s m a u t a l k 8 0 ,是一个经典的设计模式。1 。 它是设计交互式应用时广泛采用的一种设计模式,也是j 2 e e 蓝图推荐的在开 发w e b 应用时使用的方法。利用m v c 设计模式开发w e b 应用,可以将显示 逻辑和业务逻辑分离,构建可复用的软件系统框架,同时简化软件开发,提高 软件性能和可维护性,达到提高软件质量的目的。 s t r u t s 是一个基于j 2 e e 平台、实现m v c 设计模式的框架嘲。s t r u t s 主要 采用大多数开发者熟知的j a v a b e a n 、j a v as e r v e rp a g e ( j s p ) 、s e r v l e t 等标准技术, 对m v c 设计模式的三个部分提供了对应的实现组件。项目的创立者希望通过 该项目能有助于开发者利用j s p 和s e r v l e t 的优点更加快速、容易的建立可扩 展的w e b 应用“1 。s t r u t s 规定了应用的体系结构,为应用系统提供了一个良好 的软件构架,解决了由于应用的复杂性而在软件开发过程中所带来的各种问 题,并对于实现在应用系统建设初期所制定的软件功能、开发投入、开发周期、 项目的组织和管理上的目标,都有极大的帮助。它的目标是要全面减轻构建 w e b 应用的负担,提供可复用的框架。目前在国内外许多的大型w e b 应用项 目中得到广泛应用4 1 。 1 3 课题来源及主要研究内容 1 3 1 课题来源 成都中科前程科技有限公司的l 四) t l 联通电子商务平台的网上商城项目。 1 3 2 本论文研究的主要内容 1 、j 2 e e 平台框架和m v c 设计模式研究首先,从j 2 e e 体系结构、核心 技术、j 2 e e 各组件的作用等方面阐述了平台框架j 2 e e 平台框架。接着, 引出了m v c 设计模式,指出可以基于m v c 模式解决目前w e b 应用开 西南交通大学硕士研究生学位论文第4 页 2 、 3 、 发中存在的问题。 详细介绍了m v c 设计模式的实现一- - s t r u t s 框架,分析了它的体系结 构、工作原理、核心组件、配置文件以及对m v c 设计模式的实现。 分析了w e b 应用开发传统的两层体系结构和目前常用的三层体系结构, 分别指出其不足之处。接着,重点讨论了基于j 2 e e 的四层体系结构。 同时,本文对各层的实现技术做了一定的归纳分析,可作为w e b 应用技 术选择的参考。 基于上述分析,设计实现了四川联通电子商务平台的网上商城项目。其 中,整个系统采用上述四层体系结构进行分层及模块化设计。分别对w e b 层、业务逻辑层、数据持久层和数据存储层等分层进行了详细设计,并 实现了其典型功能。同时讨论了系统的测试问题。分别说明了在不同测 试环境下w e b 组件、e j b 组件的单元测试及整个系统的集成测试情况。 对系统性能优化问题进行简单探讨。分析了如何使用其它合理的设计模 式,如d e e g a t e 模式、s e s s i o nf a c a d e 模式、s e r v i c el o c a t o r 模式 及d a t aa c c e s so b j e c t 模式,以优化程序结构,提高程序代码质量。 论文总结和下一步的研究方向。 西南交通大学硕士研究生学位论文第5 页 第2 章j 2 e e 体系结构和m v c 模式 2 1 基础概念 2 1 1 组件 组件( c o m p o n e n t ) 是“独立的、可分发的、可重用的服务的集合川”。它 的目的是将对象( 包括其用户界面、对外接口等属性以及对象的功能实现) 封装 成一个规范的、标准的、可被组件容器所操纵和使用的整体,使其成为一个通 用、高效的软件部件0 1 。 如今开发企业级应用系统大量采用组件技术。现今最流行的分布式组件体 系结构标准有m s 公司的n e t 、s u n 公司的j 2 e e e 3 b 以及o m g 的c o r b a 。组件 技术使得设计人员可以通过对各种各样组件的使用来方便快捷地生成应用系 统,从而进一步提高软件的复用性,缩短软件开发周期,提高开发效率,增加 软件开发的规范性。 2 1 2 框架 框架( f r a m e w o r k ) 是整个或者部分系统的可重用设计,表现为一组抽象 组件及组件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制 的应用骨架。前者是从应用方面,而后者是从目的方面给出的定义嗍。 可以说,一个框架是一组可复用的设计组件,它规定了应用的体系结构, 阐明了整个设计、协作组件之间的依赖关系、责任分配和控制流程,表现为一 组抽象类以及其实例之间协作的方法,它为组件复用提供了上下文关系。因此 组件库的大规模重用也需要框架。 应用框架强调的是软件的设计重用性和系统的可扩展性,以缩短大型应用 软件系统的开发周期,提高开发质量。与传统的基于类库的面向对象重用技术 西南交通大学硕士研究生学位论文第6 页 比较,应用框架更注重于面向专业领域的软件重用。应用框架具有领域相关性, 组件根据框架进行组合而生成可运行的系统。框架的粒度越大,其中包含的领 域知识就更加完整。 一个成功的软件需要有一个成功的架构,但软件构架的建立是一个复杂而 又持续改进的过程,软件开发者们不可能对每个不同的项目做不同的架构,而 总是尽量重用以前的架构,或者开发出尽量通用的架构方案,本课题采用的 s t r u t s 框架就是其中之一,它是流行的基于j 2 e e 体系结构的架构方案。 通过基于请求响应( r e q u e s t r e s p o n s e ) 模式的应用框架,基本上由如下 几个逻辑结构组成n ”。 1 、控制器( c o n t r o l l e r ) 。控制器控制整个框架中各个组件之间的协调工 作。 2 、业务逻辑层( b u s i n e s sl o g i c ) 。这是框架所希望解决问题的关键。当 然,对框架本身来说,这里仅仅只是概念和几个提供服务的基础组件,真正的 实现与具体客户的业务逻辑接轨,还需要开发人员在框架上再次扩展。 3 、数据逻辑层( d a t al o g i c ) 。大部分应用系统都需要涉及到数据交互, 这一层次主要包括了数据逻辑和数据访问接口。 2 1 3 设计模式 框架与设计模式这两个概念容易被混淆,其实它们之间还是有区别的。组 件是代码重用,而设计模式是设计重用,框架则介于二者之间,部分代码重用, 部分设计重用,有时分析也可重用。在软件生产中有三个级别的重用: 1 、内部重用,即在同一应用中能公共使用的抽象块; 2 、代码重用,即将通用模块组成库或工具集,以便在多个应用和领域都 能使用; 3 、应用框架重用,即为专门领域提供通用的或现成的基础结构,以或者 最高级别的重用性。 框架与设计模式虽然相似,但却有着根本的不同。设计模式是在对某种环 境中反复出现的问题以及解决该问题的方案的描述“”。它比框架更抽象;框架 可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表 西南交通大学硕士研究生学位论文第7 页 示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式 框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说, 框架是软件,而设计模式是软件的知识。 基本的设计模式有简单工厂模式、适配器模式、观察者模式、m v c 模式、 代理模式等等“。 2 2j 2 e e 体系结构 2 2 1j 2 e e 概述 j 2 e e 是一种利用j a v a2 平台来简化企业解决方案的开发、部署和管理相 关的复杂问题的体系结构“”。j 2 e e 技术的基础就是核心j a v a 平台或j a v a2 平台的标准版,j 2 e e 不仅保留了标准版中的许多优点,例如“编写一次、随处 运行”的特性、方便存取数据库的j d b ca 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 e j a v a b e a n ) 、s e r v l e t 、j s p 以及x m l 技术的全面支持。它能够使企业开发者大 幅度缩短软件投放市场的时间:j 2 e e 体系结构提供中间层集成框架用来满足无 需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。 通过提供统一的开发平台,j 2 e e 降低了开发w e b 应用的费用和复杂性, 同时提供对现有应用程序集成的强有力支持,完全支持e j b ,能很好地支持打 包和部署应用,增强了安全机制,提高了软件的性能。 2 2 2j 2 e e 体系结构 j 2 e e 使用多层的分布式应用模型,应用逻辑按功能划分为组件,包括客户 端组件、表示层组件、业务逻辑层组件等。各个组件根据他们所在的层分布在 不同的机器上。j 2 e e 体系结构啪如图2 1 所示。 西南交通大学硕士研究生学位论文第8 页 c l i e n t 阡。掣l o g i a t c l 。耻l 5 0 1 9 吁i c 8 88 哆s y s t e 8 m m b r o w s e rlw e b 唧 a l 甲l i c a t i e n s e r v e r 5 器眄、l 。 - d l e g a c y b r o w s e r i j s p 迥纠: s y s t e m s 忸j a v a 。h 俪讣 一 、一r 衙 _ _ _ j 同 j 刊: n d 0 a p p l i c a t i o n i偷 u 口五t r i b u 谕 击 ( c o r b a 堡丝竺。 图2 1j 2 e e 体系结构 如图2 1 所示,整个应用系统由客户端( c l i e n t ) 、表示层( p r e s e n t a t i o n l o g i c ) 、业务逻辑层( b u s i n e s sl o g i c ) 和后台支持系统( b a c k e n ds y s t e m ) 组 成。下面分别简述。 i 、客户端:客户应用端部分。它可以是基于w e b 应用的,也可以不是基 于w e b 应用的。本论文讨论的即是w e b 应用,因此这里主要讨论这种情况。在 典型的w e b 应用中,典型的客户端就是浏览器,如i e 。用户的浏览器在客户端 运行,并从一个w e b 服务器上下载表示层的页面,如静态的h t m l 页面、j s p 以及) 明。等程序。 2 、表示层:在典型的w e b 应用中,表示层主要采用j s p 或者s e r v l e t 组 件。它主要负责完成与用户交互的功能。 3 、业务逻辑层:该层构成了w e b 应用的业务逻辑规则,是整个应用的核 心部分。它将业务划分为一个个独立的逻辑单元e j b 。e j b 根据客户请求,访 问数据库,进行相应的逻辑计算。 4 、后台支持系统:它运行企业信息系统软件,如企业资源计划( e r p ) 、数 据库系统( d b ) 及遗留信息系统( l e g a c ys y s t e m s ) 等。中间层( 即表示层和业务 逻辑层) 负责建立和后台支持系统的连接,提供相应的数据服务。 西南交通大学硕士研究生学位论文第9 页 2 2 3j 2 e e 核心a p i j 2 e e 平台由一整套服务( s e r v i c e s ) 、应用程序接口( a p is ) 和协议构成, 它对开发基于w e b 的多层应用提供了功能支持。1 ,以下是j 2 e e 中的9 种主要 a p i 的简单描述: 1 、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 ) :j d b ca p i 为访问不同的数据库 提供一种统一途径,与o d b c 一样,j d b c 对开发者屏蔽了一些细节问题,另外 d b c 对数据库的访问也具有平台无关性“”。 2 、j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ) :3 n d ia p i 被用于执 行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源,如d n s , l d a p 、本地文件系统或应用服务器中的对象。 3 、e j b ( e n t e r p r i s ej a v ab e a n ) :提供了一个框架来开发和实施分布式 商务逻辑,并且显著地简化了具有可伸缩胜和高度复杂的企业级应用的开发。 e j b 规范定义了e j b 组件在何时如何与它们的容器进行交互作用。容器负责提 供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。 但这里值得注意的是,e j b 并不是实现j 2 e e 的唯一途径。正是由于j 2 e e 的开 放性,使得有的厂商能够以一种和e j b 平行的方式来达到同样的目的。e j b 是 j 2 e e 体系结构的骨干部分伽。 4 、r m i ( r e m o t em e t h o di n v o k e ) :r m i 协议调用远程对象方法。它使用 了序列化方式在客户端和服务器端传递数据。r m i 是一种被e j b 使用的更底层 的协议“。 5 、j a v ai d l c o r b a :在j a v ai d l 的支持下,开发人员可以将j a v a 和c o r b a 集成在一起。通过它,j a v a 可以将新的应用和旧的系统集成在一起n 8 1 。 6 、j s p ( j a v as e r v e rp a g e s ) :j s m 页面由h t m l 代码和嵌入其中的j a v a 代码组成。服务器在j s p 页面被客户端请求访问以后,对这些j a v a 代码进行 处理,然后将生成的页面返回给客户端的浏览器呻1 。 7 、j a v as e r v l e t :s e r v l e t 是一种小型的j a v a 程序,它扩展了w e b 服务 器的功能作为一种服务器端的应用,当被请求时开始执行s e r v l e t 提供的 功能大多与j s p 相似,不过实现的方式不同。j s p 通常是大多数h t m l 代码中嵌 入少量的j a v a 代码,而s e r v l e t 全部采用j a v a 语言开发。”。 西南交通大学硕士研究生学位论文第1 0 页 8 、x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) :x m l 是一种可以用来定义其它 标记语言的语言。它被用来在不同的商务过程中共享数据。x m l 的发展和j a v a 是相互独立的;但是,它和j a v a 具有的相同目标,即平台独立性。通过将j a v a 和x m l 的组合,可以得到一个完美的具有平台独立性的解决方案。 9 、j m s ( j a v am e s s a g es e r v i c e ) :j m s 是用于和面向消息的中间件相互通 信的应用程序接口。由于本文没有涉及,这里不展开说明。 2 2 4 e j b 组件 2 2 4 1e j b 组件模型 如上所述,e j b ( e n t e r p r i s ej a v a b e a n ) 组件是j 2 e e 体系结构的骨干部 分。它是基于标准分布式对象技术、c o r b a 和r m i 的服务器端j a v a 组件。s u n 公 司对e j b 的定义是:e j b 是用于开发和部署多层结构的、分布式的、面向对象 的j a v a 应用系统的、跨平台的构件体系结构“。e j b 技术与其它的j 2 e e 技术 相结合,为企业级的电子商务系统的开发提供了一个安全、可靠、灵活以及伸 缩性很强的开发平台。图2 - 2 为e j b 组件模型的运行原理图0 1 。 l 囱 、入 l 一竺竺三一j 图2 2e j b 组件模型 如图2 2 所示,e j b 组件模型由下面的部分组成:e j bs e r v e r 、e j b c o n t a i n e r 、r e m o t ei n t e r f a c e 、h o m ei n t e r f a c e 、e j bo b j e c t 。关于上述各 西南交通大学硕士研究生学位论文第11 页 容器和接口的原理和作用请参考文献 6 。 e j b 组件模型的工作原理可简述为:w e bs e r v e r 把客户端的请求分发到应 用系统层,首要的目标是找到特定服务的e j b 组件,w e bs e r v e r 透过e j bs e r v e r 层,与e j bc o n t a i n e r 通信,查找并且定位h o m e 对象,h o m e 对象是e j b 对象 与客户端应用程序之间通信的接口,当找到特定的h o m e 对象时,我们就可以 利用这个对象,创建一个r e m o t e 对象,这个r e m o t e 对象封装了e j b 对象所有 的功能,在应用程序中调用r e m o t e 对象的方法,实际上就是调用e j b 对象的 方法。 关于e j b 的具体工作机制诸参考文献 6 ,1 2 。限于篇幅,这里不展开论 述。 2 2 4 2e o b 组件分类 e j b l l0 规范中定义的e j b 总共有两大类:实体b e a n ( e n t i t yb e a n ) 和会话 b e a n ( s e s s i o nb e a n ) 。分别做如下简述。 1 、实体b e a n 用来表示持久性的数据,并且提供相应的方法来访问控制 这些数据。根据实现方式的不同,实体b e a n 可以分为容器管理的持久性( c m p ) 和b e a n 管理的持久性( b m p ) 两种。c m p 由容器来完成b e a n s 的持久性管理和实 例的维护。b m p 则由b e a n s 本身来管理持久性,所以具有更大的灵活性和容器 无关性。”。但是c m p 的效率比b m p 要高,所以在构建实际的应用时,我们主要 采用c m p 。 2 、会话b e a n由客户端创建,多数情况下存在于单个客户和服务器会话 期间。它的最主要功能是实现业务逻辑、业务规则和工作流。会话b e a n 也有 两种:无状态的会话b e a n 和有状态的会话b e a n 。无状态的会话b e a n 可以被多 个客户端访问,不存储任何一个客户端的会话信息;有状态的会话b e a n 则与 惟一的一个客户端维持会话信息。 另外,e j b l 1 规范新增了消息驱动b e a n ,它是能够接收删s 消息的特殊 e j b 组件,由于本文没有采用该组件技术,不再赘述。 简言之,e j b 规范提供了一种开发和部署服务器端组件的方法。每个e j b 是按功能逻辑划分的,开发时不必关心系统底层细节问题,只关注具体的事务 西南交通大学硕士研究生学位论文第12 页 分析。e j b 开发完毕后,按规划部署在e j b 容器中,完成相应的事务功能。e j b 支持分布式计算,真正体现了企业级的应用1 。 2 3m v c 设计模式 模型一视图一控制器( m o d e l v i e w - c o n t r o l l e r ,简称m v c ) 是一种目前广泛流 行的软件开发设计模式旧,随着网络应用的快速增加,使用m v c 设计模式设计 开发w e b 应用软件的优势也慢慢地呈现出来,大多数的w e b 层应用框架都可 以使用不同变化类型的m v c 设计模式。它能为理解、分析应用模型提供最基本 的分析方法,并为构造软件商品提供清晰的结构框架0 1 。 在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 e b 应用。m v c 设计模式如图2 - 3 所示。 方法调用 卜事件 图2 - 3m v c 设计模式 西南交通大学硕士研究生学位论文第13 页 由图2 - 3 可知,m v c 设计模式具有三个层面:模型( m o d e l ) 、视图( v i e w ) 和控制器( c o n t r o l l e r ) ,每个层面有其各自的功能作用。 1 、模型 模型层负责表达和访问商业数据,执行商业逻辑和操作。也就是说,这一 层就是现实生活中功能的软件模拟:在模型层变化的时候,它将通知视图层, 并提供后者访问自身状态的能力,同时控制层也可以访问其功能函数以完成相 关的任务。 2 、视图 视图层负责显示模型层的内容。它从模型层取得数据并指定这些数据如何 被显示出来。在模型层变化的时候,它将自动更新。另外视图层也会将用户的 输入传送给控制器。 3 、控制器 控制层负责定义应用程序的行为。它可以分派用户的请求并选择恰当的视 图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的 操作:在一个图形界面中,常见的用户输入有点击按钮和菜单选择。在w e b 应 用中,它包括对w e b 层的h t t pg e t 和p o s t 的请求;控制层可以基于用户的交 互和模型层的操作结果来选择下一个可以显示的视图,一个应用程序通常会基 于一组相关功能设定一个控制层的模块,甚至一些应用程序会根据不同的用户 类型具有不同的控制层设定,这主要是由于不同用户的视图交互和选择也是不 同的。 在模型层、视图层和控制层之间划分责任可以减少代码的重复度,并使应 用程序维护起来更简单。同时由于数据和商务逻辑的分开,在新的数据源加入 和数据显示变化的时候,数据处理也会变得更简单。 有人提出,m v c 模式不应当被称为“设计模式”,而应当被称为“架构模 式”。其实,可以把m v c 设计模式看作是若干个设计模式的组合,这个组合在 不同的应用环境中衍生出了其它一些设计模式。但是在实际的各种讨论中,m v c 模式还是常常被当作设计模式。 m v c 设计模式主要适用于那些多用户、可扩展、可维护或具有很高交互性 的系统,它可以很好地表达用户的交互和系统模式,并且很方便地用多个视图 显示多套数据,使系统能够方便地支持其它新的客户端类型。由于分离了模式 西南交通大学硕士研究生学位论文 第14 页 中的控制和数据表现,可以分清开发者的责任,缩短开发工期,提高软件质量, 从而加速商品推向市场。 在实际开发过程中,m v c 设计模式的基本实现过程为。1 : 1 、控制器新建模型; 2 、控制器新建一个或多个视图对象,并将它们与模型相关联: 3 、控制器改变模型的状态; 4 、当模型的状态改变时,模型将会自动刷新与之相关的视图。 使用m v c 设计模式处理一个业务逻辑时,首先控制器接收用户的请求,并 决定应该调用哪个模型来进行处理,然后模型使用业务逻辑组件来处理用户的 请求并返回数据,最后控制器选择相应的视图显示模型返回的数据,并通过表 示层呈现给用户。 西南交通大学硕士研究生学位论文第1 5 页 第3 章m v c 设计模式的实现一- - s t r u t s 框架 s t r u t s 项目作为一个设想是c r a i gr m c c t a n d h a n 在2 0 0 0 年提出的。项 目的创立者希望通过对该项目的研究,为利用j a v a 技术开发基于m v c 模式的 w e b 应用提供一个标准模式,改进和提高j s p 、s e r v l e t 、标签库以及面向对象 的技术水平嘲。 3 1s t r u t s 概述 m v c 设计模式本身就是一个非常复杂的系统,实现起来非常麻烦,所以采 用m v c 设计模式开发w e b 应用时,最好选择一个已经搭建完毕的m v c 框架,在 此之下进行开发,从而取得事半功倍的效果。现在有很多可供使用的优秀的m v c 框架,s t r u t s 即是其中应用最广泛的一个框架。 这个框架之所以叫“s t r u t s ”,是为了提醒人们记住那些支撵房屋、建筑、 桥梁、甚至踩高跷时候的基础支撑。这也是对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 技术开发基于m v c 模式的w e b 应用提供一个 标准模式,它的应用范围极广,可以用在不同的项目,不同的行业,比如电信、 电子商务。s t r u t s 是一个高度可配置、高度扩展性的m v c 框架,人们几乎可以 用它开发任何能想到的用j a v a 技术的w e b 应用。m v c 模式的每一部分在s t r u t s 中都有相关对应部分。 s t r u t s 提供了开发y v c 系统的底层支持,它采用的主要技术是s e r v l e t 、 j s p 和定制标签库。它提供了一个方法,可以在一个w e b 应用程序中一起使用 j s p 和s e r v l e t 。它的目的是要解决完全由j s p 或完全由s e r v l e t 实现的应 用程序中的固有的问题,弥补完全由j s p 或s e r v l e t 开发应用程序时的不足, 使j s p 与s e r v l e t 完美结合。 西南交通大学硕士研究生学位论文第16 页 s t r u t s 采用了j s p 和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 控制输入的请求和输出的响应。如果传入s e r v l e t 的请求是一个数据库查询请求,s e r v l e t 将把这个请求传送到一个s o l 调用或 类似的数据库代码中进行处理;如果请求是一个包括输入信用卡号的购买请 求,那么业务逻辑处理代码就接管了。j s p 页面是显示层( 视图) ,是用户与应 用程序交互的地方。它提供输入并显示结果。j s p 只负责将数据传送到 s e r v l e t ,并接收和显示返回的数据。 s t r u t s 使用m v c 架构的优势应该是很明显的,下面做简单说明。 首先,它将计算和显示清楚地分开了,在j s p 页面上没有出现处理过程, 在s e r

温馨提示

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

评论

0/150

提交评论