(计算机应用技术专业论文)结合struts与hibernate的web开发模式之研究与应用.pdf_第1页
(计算机应用技术专业论文)结合struts与hibernate的web开发模式之研究与应用.pdf_第2页
(计算机应用技术专业论文)结合struts与hibernate的web开发模式之研究与应用.pdf_第3页
(计算机应用技术专业论文)结合struts与hibernate的web开发模式之研究与应用.pdf_第4页
(计算机应用技术专业论文)结合struts与hibernate的web开发模式之研究与应用.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

(计算机应用技术专业论文)结合struts与hibernate的web开发模式之研究与应用.pdf.pdf 免费下载

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

文档简介

摘要 随着现代信息产业的蓬勃发展,软件开发已经成为一项浩大繁杂的工程。 从计划、设计到实现,每一个环节都必须严格把关,稍有不慎,整个工程就 会失败。据统计,仅在美国,每年就有1 8 0 ,0 0 0 个信息技术项目,耗资大约$ 2 5 0 0 亿美元,其中2 5 3 0 的项目会流产。由此可见,由于管理不善和设计上的失 误所造成的损失是巨大的。现代软件开发的过程和管理显得比以往任何时候 都更为重要。 本文以r a t i o n a l 公司首创的r u p 方法论,并结合j a v a j 2 e e 、u m i _ r o s e 和w s a d 这样的技术、工具和平台所构成的软件开发过程为研究的出发点; 围绕r u p 的三个主要特征( 软件开发是以架构设计为中心,由用例驱动,并 且是一个迭代的过程) 来展开。 首先,对接个项目的基础架构进行设计。本部分,文章始终以基于j 2 e e 体系的w e b 开发方法为探讨的基线。从s e r v l e t j s p 的技术原理,到结合这两 种技术进行w 西开发的m o d e l l 和m o d e l 2 设计,再到实现m o d e l 2 的更佳方 案s t n l t s 框架内部机制的探讨等。接着,根据w e b 应用的经典分层理论, 对持久层的设计进行了分析,引入了h i b e r n a t e 框架技术;最终,应用s t r u t s 作为表示层实现,应用h i b e r n a t e 作为持久层实现,并结合最新的s p r i n g 技术 作为业务层实现,进行框架整合,从而设计出了一套足够灵活、松散耦合、 可扩展且高效的w 曲开发框架。 其次,本文采用用例驱动的方法对人力资源管理系统的需求进行分析, 展示了用例描述的规范。 最后,本文以我们设计出的开发框架作为架构中心,选取人事系统比较 核心的“人员管理、机构管理、内部调动、合同管理、工资管理”作为第一 阶段迭代的目标来开发实现,并在这一阶段最后进行成果评估,以决定是否 进行下一次迭代。现在,第一阶段的任务已开发完成并顺利部署到最终用户 域中,满足了客户在扩展性和性能方面的要求。随着人事二期工程的展开, 更多的功能模块将被迭代增加进来,系统将会变得更加完善和强大。 目前,结合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 项目开发的理想组合,以该框架为中心、采用用例驱动的、迭代 的r u p 软件开发过程逐渐成为软件开发行业事实上的工业标准。因此,本文 的框架设计和基于r u p 的成功实践必将对我国软件企业具有重要的借鉴意 义。 关键字:r u p ,软件过程,架构设计,s t r u t s ,h i b e r n a t e a b s t r a c t s o f t w a r ed e v e l o p m e n th a sb e e nav a s ta n dm i s c e l l a n e o u se n g l n e e r i n g ,a l o n g w i t ht h ef l o u r i s h d e v e l o p m e n t o ft h em o d e mi n f o r m a t i o n i n d u s t r y f r o m p r o g r a m m i n g , d e s i g n i n g t or e a l i z i n g , e v e r ys t e pm u s tb es t r i c t l yh e l dt h ep a s s ;t h e w h o l ee n g i n e e r i n gw i l lf a i la tal i t t l en e g i i g e n c e a c c o r d i n gt os t a t i s t i c s ,o n l yi nt h e u s ,t h e r ea r e1 8 0 ,0 0 0i n f o r m a t i o nt e c h n o l o g yp r o j e c t sw h i c hs p e n d2 5 0b i l l o n d o l l a r se v e r yy e a r ;2 5 - 3 0p e r c e n t so ft h ep r o i e c t sa r ef a i l e d s o ,t h el o s i n gi sh u g c b e c a u s eo fb a dm a n a g e m e n ta n dt h eb u gi nt h ed e s i g n t h ep r o c e s sa n d m a n a g e m e n to fm o d e r ns o f t w a r ed e v e l o p m e n ti sm u c hm o r ei m p o r t a n tt h a na n y o t l l e rt i m e t h i sa r t i c l e sr e s e a r c hs t a r t sw i t ht h ep r o c e s so fs o f t w a r ed e v e l o p m e n tw h i c hi s m a d eu po fm e t h o d o l o g y r a t i o n a lu n i f i e dp r o c e s sw h i c hi si n i t i a t e db yr a t i o n a l c o r p o r a t i o na n dt h et e c h n o l o g y , t o o l s ,p l a t f o r mo fj 筒,a 2 e e ,u m u r o s e , w s a d ;m e a n w h i l e , io u t s p r e a dt h ea r t i c l ew i i l t h et h r e em a i nc h a r a c t e r s ( s o f t w a r ed e v e l o p m e n ti sc e n t e r e db ya r c h i t e c t u r a ld e s i g n ,d r i v e nb yt h eu s ec a s e a n di t e r a t i v e ) o fr u e f i r s t l y , l 1 1d e s i g nt h ef u n d a m e n t a lf r a m e w o r ko ft h ew h o l es y s t e m i nt h i sp a r t , t h ep a p e ri sa l w a y sb a s e do nt h ew e bd e v e l o p m e n tm e t h o d so fj 2 e ea r c h i t e c t u r e , s u c ha st h et e c h n i c a lp r i n c i p l eo fs e r v l e t j s p , t h em o d e l la n dm o d e l 2d e s i g n c o m b i n i n gs e r v l e tw i t hj s pa n dt h ed i s c u s so fi n t e r n a lm e c h a n i s mo fs t r u t s a r c h i t e c t u r ew h i c hc a nb e t t e ri m p l e m e n tt h em o d e l 2a n ds oo n f i n a l l y , ia p p l i e d t h es t r u t st ot h ep r e s e n t a t i o nl a y e r , a p p l i e dt h eh i b e r n a t et ot h ep e r s i s t e n c el a y e r , a p p l i e dt h es p r i n gt ot h eb u s i n e s sl a y e r , c o n f o r m e di nf r a m e w o r ka n dc o n s t r u c t e d a f l e x i b l e ,l o o s e l yc o u p l e d , e x t e n s i b l ea n dh i g h p e r f o r m a n c ed e v e l o p i n g a r c h i t e c t u r e s e c o n d l y , t h ea r t i c l ea n a l y z e dt h er e q u i r e m e n to ff i rw i t ht h em e t h o dw h i c hi s d r i v e nb yu s e - c a s ea n db r o u g h tf o r t ht h ec r i t e r i o no fu s e c a s e d e s c r i p t i o n l a s t l y , t h i sp a p e ri sc e n t e r e db yt h ea r c h i t e c t u r ew ed e s i g n e da b o v e ,c h o o s et h e m o r ei m p o r t a n tm o d u l e s ,s u c ha sp e r s o nm a n a g e m e n t ,o r g a n i z a t i o nm a n a g e m e n t , i n t e r n a lm o v e m e n t ,c o n t r a c tm a n a g e m e n t ,w a g em a n a g e m e n ta st h ef i r s tp h a s e s i t e r a t i v eg o a lt od e v e l o pa n di m p l e m e n t ,e v a l u a t et h er e s u l ta tt h ee n do ft h ef i r s t p h a s et od e c i d ew h e t h e ro rn o tt oh a v et h en e x ti t e r a t i v ep h a s e n o w , t h er e s u l to f t h ef i r s tp h a s eh a sf i n i s h e da n db e e nd e p l o y e dt ot h eu s e r se n v i r o n m e n t s , m e a n w h i l e i tm e tu s e r sr e q u e s ti ne x t e n s i b i l i t ya n dp e r f o r m a n c e m o r em o d u l e s w i l lb ea d d e di n t ot l l eh rs y s t e ma n dt h es y s t e mw i l lb e c o m em o r ep e r f e c ta n d p o w e r f u la l o n gw i t ht h es p r e a do f s e c o n dp h a s eo fh r c u r r e n t l y , t h ea r c h i t e c t u r a lc o m b i n a t i o no fs t r u t s ,h i b e r n a t e a n ds 研n gi s c o n s i d e r e dt h ei d e a lo n et od e v e l o pt h el a r g e s c a l ew e ba p p l i c a t i o nb a s e do nj 2 e e t h e p r o c e s so fs o f t w a r ed e v e l o p m e n tb a s e do nt h er u p w h i c hi sc e n t e r e do nt h e a r c h i t e c t u r a lc o m b i n a t i o n ,d r i v e nb yu s ec a s ea n di t e r a t i v eg r a d u a l l yb e c o m e s f a c t u a li n d u s t r i a ls t a n d a r di ns o f t w a r ed e v e l o p m e n ti n d u s t r y t h e r e f o r e ,t h ed e s i g n o fa r c h i t e c t u r ei nt h i sp a p e ra n dt h es u c c e s s f u lp r a c t i c ei nr u pm u s th a v e i m p o r t a n tr e f e r e n c e dm e a n i n gt ot h es o f t w a r ee n t e r p r i s e si no u rc o u n t r y k e yw o r d s :r u p ;s o f t w a r ep r o c e s s ;a r c h i t e c t u r a ld e s i g n ;s t r u t s ;h i b e r n a t e i l l 此页若属实请申请人及导师签名。 独创性声明 本人声明,所呈交的论文是我个人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢 的地方外,论文中不包含其他人已经发表或撰写过的研究成果, 也不包含为获得武汉理工大学或其它教育机构的学位或证书而使 用过的材料。与我一同工作的同志对本研究所傲的任何贡献均已 在论文中作了明确的说明并表示了谢意。 研究生签名:燃日期丞纽幽 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定, 即:学校有权保留送交论文的复印件,允许论文被查阅和借阕; 学校可以公布论文的全部内容,可以采用影印、缩印或其他复翻 手段保存论文。 ( 保密的论文在解密后应遵守此规定) 研究生签名微导师签名:辑日期 注:请将此声明装订在论文的目录前。 i v 劲。争。f 武汉理工大学硕士学位论文 1 1 研究课题的提出 第一章引言 基于w e b 的应用系统,是i n t e m e v i n t r a n e t 技术推广以来,发展最快的一 种计算机应用系统,无论是企业、机构的内部计算机应用系统,还是在互联 网上的应用服务系统,基于w e b 的计算机应用系统都发挥着越来越重要的作 用,逐渐成为计算机应用系统的主流模型。然而,b s 多层结构的w e b 软件 其复杂性远高于传统的c s 结构的软件,采用框架技术进行b s 结构应用系 统的开发能很好的缓解这种矛盾。因此,建立和研究w e b 开发框架具有巨大 的技术价值和市场价值,其作用主要体现在: ( 1 ) 简化问题,提高软件生产率 好的框架采取合适的设计模式分化技术难点,构建相对独立的层次,使 开发者集中精力于业务逻辑,不受底层系统的影响,从而大幅度提高软件生 产的效率。 ( 2 ) 软件复用 复用一直是软件开发的重要目标。复用包括组件、设计模式以及开发方 法的复用。框架实现对具体问题领域运行系统的抽象,是实现大粒度复用的 主要途径。 ( 3 ) 可维护性和可扩展性 可维护性和可扩展性是适应用户需求变化的重要方面,框架要具备良好 的可维护行和扩展性,以满足用户的二次开发需要。 ( 4 ) 性能改进 一个设计良好的、松散藕合的框架系统,容易隔离有性能问题的部分, 有助于查找导致性能瓶颈的关键因素,从而进行单独地测试和改进。 另一方面,随着现代信息产业的蓬勃发展,软件开发已经成为一项浩大 繁杂的工程。据统计,仅在美国,每年就有1 8 0 ,0 0 0 个信息技术项目,耗资大 约$ 2 5 0 0 亿美元,其中2 5 3 0 的项目会流产。由此可见,由于管理不善和设 武汉理工大学硕士学位论文 计上的失误所造成的损失是巨大的。现代软件开发的过程和管理显得比以往 任何时候都更为重要1 ”。 软件开发的过程由方法论和工具构成。r a t i o n a l 公司首创的r u p 方法论, 由于与目前流行的j a v a j 2 e e 技术和面向对象的设计思想的紧密结合,使得 其在大型信息技术项目中得到了广泛的应用。以r u p 作为方法论,结合 u m l r o s e 、j a v a j 2 e e 、w s a d 、w e b s p h e r ea p p l i c a t i o ns e r v e r 和o r a c l e 这 样的技术、工具和平台,进行软件开发过程实践方面的研究是十分必要的。 本文基于j 2 e e 多层体系结构,试图以开源社区中比较成熟和流行的开源 框架s t r u t s 和h i b e r n a t e 为基础,并结合最新的s p r i n g 框架技术,对它们进行 有效整合,从而构建一套足够灵活、松散耦合、可扩展且高效的w e b 开发框 架。最后,以该框架为基础,采用用例驱动的、迭代的r u p 方法进行人事系 统的开发,以走出一条成功的软件开发过程实践之路。 1 2 课题研究的现状 1 2 1 软件开发模式现状 c s 和b s 是当今世界开发模式技术架构的两大主流技术。 c s ( c l i e n t s e r v c r ) 结构,即客户机和服务器结构,它是软件系统体系 结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到c l i e n t 端和s e r v e r 端来实现,降低了系统的通讯开销。c s 结构下,软件具有强壮 的数据操纵和事务处理能力,但随着企业规模的日益扩大,应用程序的复杂 程度不断提高,c s 结构逐渐暴露出了缺点。比如开发成本较高,用户界面风 格不一、使用繁杂、不利于推广使用,维护复杂、升级麻烦等。 为了解决c s 结构的不足,基于i n t e m e t 的b s 技术应运而生,本质上 b s 也是一种客户机技术,用户只需通过浏览器这个统一界面,就可享受到无 限丰富的、永远在不断变化和发展着的信息服务。在这种结构下,用户工作 界面是通过浏览器来实现,业务逻辑放在应用程序服务器上( a p p l i c a t i o n s c l v e r ) ,企业数据存储在数据库服务器( d a t a b a s es g r v e l ) 上,即形成所谓三 层3 - t i e r 结构,这样就大大简化了客户端载荷,减轻了系统维护与升级的成本 和工作量,降低了用户的总体成本( t c o ) 。 2 武汉理工大学硕士学位论文 从应用角度来看,b s 结构的软件相比c s 结构下的软件,有着独特的优 势。 ( 1 ) 节约投资。b s 结构下,软件一般只有初期一次性投入成本;而c s 结构下,软件则随着应用范围的扩大,要求不断地进行资本投入。 ( 2 ) 简化工作。b s 结构下,软件安装在服务器端即可解决问题,在做 更改时,只需调整服务器端即可;c s 结构下,软件则需要安装在客户机端, 调燕的时候需要涉及到局域网内的每一台机器,对于区域级服务器来讲,c s 结构的软件更新则更加复杂。 ( 3 ) 更好地保障数据安全。在c s 结构下的软件解决方案里,对于异地 经营的大型集团企业,需要在各地分别安装区域级服务器。一旦某个区域 级服务器出现问题,对数据的安全会造成一定影响,而且总部也不会得到准 确的最终数据。对b 届结构下的软件来讲,其数据集中存在于企业的中央数 据库,可有效地保护数据的安全,而且企业可随时随地掌握自己的经营状况、 市场动态,以做出最快决策。 ( 4 ) 不受网络的限制。c s 结构软件仅适用于局域网内部用户或宽带用 户( 1 m 以上) :而b s 结构软件则适合于任何网络结构,尤其适合于宽带不 能达到的地方。 1 2 2w e b 应用开发平台现状 无疑,j 2 e e 和n e t 是当今世界两大主流开发平台,下面将对它们在表示 层、中间层、数据访问层所采用的技术机制进行一个简要的客观比较,以便 为接下来讨论的基于j 2 e e 的框架整合提供一个横向的参考。 ( 1 ) 表示层。对于b s 结构的表示层,j 2 e e 使用s e r v l e t j 零p 技术来实现, 而n e t 则采用a s e n e t 。 j s p 本质上也要被编译成s e r v l e t ,而在s e r v l e t 中,每个请求由一个轻量 级的j a v a 线程处理,而不是重量级的操作系统进程,故其响应速度较快:另 外,j s p 的脚本语言为j a v a ,所以其继承了j a v a 的诸多优点。 a s e n e t 基于公共语言运行库,因此w e b 应用开发人员可以利用整 个n e t 平台的威力和灵活性,n e t 框架类库、消息处理和数据访问解决方 案都可从w e b 无缝访问;另外,a s e n e t 提供的早期绑定、实时编译、本机 3 武汉理工大学硕士学位论文 优化和页面缓存,使得其运行速度大大加快。 ( 2 ) 中间层。基于组件的软件开发技术可以在较高的级别上实现软件复 用,加快企业软件开发的进程。 在j 2 e e 构架中,j a v a b e a n 和e j b ( e n t e r p r i s ej a v a b e a n s ) 被用来完成事 物逻辑。其中e j b 和j a v a b e a n 有着类似的模型,但它被用来创建分布式的企 业应用,它定义服务器端组件的模型,具有以下一些特性:生存期模型;访 问模型:安全模型;事务处理模型;会话处理模型;数据封装模型;部署模 型。根据这些模型,简单的编码就可完成复杂的功能。 在微软的n e t 平台中,旧的c o m 和c o m + 的组件模型被新的组件模 型所代替。增加了像基于沙箱的安全模型和垃圾回收等功能,并且实现了多 重接口继承,扩展的元数据和新的代理模型等,旧的c o m 和c o m + 组件也 可被映射到新的运行环境中。 由此看来,两种架构在基于组件的中间层的设计上各有千秋,对于创建 分布式的、复杂的、高效的、高可靠性的应用程序都有着足够的能力。 ( 3 ) 数据访问层。j 2 e e 和n e t 以不同的形式支持数据的访问。 在j 2 e e 中,j d b c 和a d o 一样和所连接的数据库无关,并且通过连接、 命令语句和结果集来对数据进行操作,它属于中间层次的a p i 。更高一级的 数据封装和数据管理是通过实体e j b ( e n t i t ye j b ) 来完成的,基于容器管理的 实体e i b 使开发更快捷,管理更方便。事实上,由于实体f i b 的l o a d 0 和s t o r e 0 方法的同步机制,将大大缓解因并发而使数据库产生的瓶颈。 而微软的n e t 的数据访问工具则由基于x m l 的a d o n e t 代替了基于 c o m 组件的a d o 。任何以x m l 为输出的数据源都可以作为a d 0 n e t 的 数据源。相应的结果集升级为数据集,命令语句则升级为数据集命令。从形 式来看,微软的a d o n e t 更先进一些,基于x m l 的特性使其可以处理极其 丰富的数据源,并且,因其构架在h t r p 协议之上,易于穿透防火墙,使沟 通更为便利。 但由于x m l 本身的基于标记的特性,很明显限制了在有超大数据量和有 网络瓶颈的应用中的使用。而j 2 e e 的数据访问规则,则显得略有单薄,但同 时却更简单,更有效,通过对应用程序有效的层次设计,对于数据库和基于 x m l 的数据源的访问,也是可以做到无缝整合的。 4 武汉理工大学硕士学位论文 1 3 研究课题的基本思路 1 3 1 采取的研究方法 本课题以b s 结构下w e b 应用的开发模式为研究的基本出发点,全面基 于j 2 e e 多层体系结构;以w e b 应用的合理经典分层为基础,深入剖析分别 应用于各层的、流行的、成熟的开源框架s t r u t s 、s p r i n g 和h i b e r n a t e 的内部 运行机制:从而进行有效的整合,以设计出一个足够灵活、松散耦合、可扩 展且高效的开发框架;接着,严格按照统一软件开发过程,以i b m 公司r a t i o n a l r o s e 为建模工具,对人力资源管理信息系统的“用户权限管理”和“合同管 理”两个模块进行分析设计,以构建其业务模型;最后,基于上述开发框架 进行编码,以展现该框架的有效和高效性,并走出一条成功的以架构为中心 的软件开发实践之路。 1 3 2 采用的技术路线 本文基于r u p ( r a t i o n a l 统一过程) 进行组织。r u p 对软件开发过程的指 导主要体现在以下三个方面: ( 1 ) r u p 强调软件开发是以构架设计为中心的 构架设计是系统设计的一个重要组成部分。在架构设计过程中,我们必须 完成对技术和运行平台的选取,对整个项目的基础框架的设计,同时,对系 统的可扩展性、安全性、可维护性、可重用性和运行速度提供可行的解决方 案。 ( 2 ) 软件开发是由用例驱动的 用例是r u p 中一个非常重要的概念。一个用例就是系统的一个功能。在 系统分析和系统设计中,用例被用来将一个复杂的庞大系统分割、定义成一 个个小的单元,这个小的单元就是用例,然后以每个小的单元为对象进行开 发。按照r u p ,用例贯穿整个软件开发的生命周期。在商务需求分析中,客 户或用户对用例进行描述,在系统分析和设计过程中,设计师对用例进行分 析,在开发实现过程中,开发编程人员对用例进行实现,在测试过程中,测 试人员对用例进行检验。 ( 3 ) 软件开发是一个迭代过程 5 武汉理工大学硕士学位论文 按照传统的瀑布开发模式,软件开发大致经历如下几个步骤:商务需求 分析、系统分析、系统设计、开发实现、测试、发布、系统支持和系统变更 管理。传统的瀑布开发模式假定在进行新的开发过程时,上一个过程已经完 成,而且不会回到上一个过程。初看起来,这似乎是一个非常合理、高效率 的解决方案,但2 0 多年的实践证明,这个开发模式存在着很大的弊病,原因 是软件开发是一个非常复杂的工程,有诸多的因素影响工程的效率和成败。 软件开发需要许多不同背景的个人和团队参与。由于这些复杂性,在软件开 发的整个生命周期中每一个阶段都有可能留下隐患和错误。如果等到系统已 经开发实现完毕,在测试阶段发现了重大问题,这时的返工将会造成人力、 物力、财力及时间上的巨大浪费。鉴于以上的考虑,r u p 强调软件开发是一 个迭代模型,r u p 定义了四个阶段:初始,细化,建造,交付。其中每个阶 段都有可能经历以上所提到的从商务需求分析开始的各个步骤,只是每个步 骤的高峰期会发生在相应的阶段。这种迭代模型的实现在很大程度上提供了 及早发现隐患和错误的机会,因此被现代大型信息技术项目所广泛采用。 1 4 预期的研究成果和创新点 一、本课题预期的研究成果包括: ( 1 ) 一套足够灵活、松散耦合、可扩展且高效的w e b 开发框架模型。 ( 2 ) 一套全面基于上述开发模型的、安全、高效、易维护的人力资源管 理信息系统。 二、课题创新点: ( 1 ) 对开源框架s t r u t s 、h i b e r n a t e 和s p r i n g 进行的有效接合。 ( 2 ) 采用先进的设计工具和开发平台,以科学的开发流程作保证,进行 大型w 曲应用分析、设计、开发、部署的成功实践。 ( 3 ) 全新的基于r b a c 思想的“用户权限管理”系统地设计与实现。 ( 4 ) j s p 标签库的成功应用。 6 武汉理工大学硕士学位论文 第二章j a v as e r v l e t j s p 技术 j 2 e e 体系结构为建立动态w e b 应用程序提供了丰富的功能和灵活的编程 模型,其中的w e b 容器、j a v as e r v l e t a p i 和j a v as e r v e rp a g e s a p i 用来建立和 管理w e b 应用程序。w e b 容器提供了基本的运行时环境和一个为w e b 应用程 序提供运行时支持的框架,j a v as e r v l e t 和j s p 技术形成了开发w e b 应用程序 的核心材料【7 】o 2 1s e r v l e t 技术原理 s e r v l e t 是建立基于w e b 的应用程序接口的基石。s e r v l e t 技术提供了一种 普遍的编程模型,它也是j s p 的基础。s e r v l c 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 引擎服务器来管理,与 传统的c g i 为每个客户端启动一个进程相比较,效率要高得多。 s e r v l e t 的生命周期主要有下列三个过程组成: ( 1 ) 初始化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 对象,这个对象调用i n i t 方法完成必要的初始化 工作。 ( 2 ) 诞生的s e r v l e t 对象调用s e r v i c e 方法响应客户的请求。 ( 3 ) 当服务器关闭时,调用d e s t r o y 方法,销毁s e r v l e t 对象。 h t t p s e r v l e t 类的主要方法: ( t ) i n i t 方法 s e r v l e t 第一次被请求加载时,服务器初始化一个s e r v l e t ,即创建一个 s e r v l e t 对象,这个对象调用i n i t t 撇完成必要的初始化工作。i n i t oh t t p s e r v l e t 类中的方法,我们可以在s e r v l e t 中重写这个方法。方法描述为: p u b l i cv o i di n i t ( s e r v l e t c o n f i ge o n f i g ) t h r o w ss e r v l e t e x c e p t i o n 该方法在执行时,s e r v l e t 引擎会把一个s e r v l c t c o n f i g 类型的对象传递给 7 武汉理工大学硕士学位论文 i n i t 0 方法,这个对象就被保存在s e r v l e t 对象中,直到s e r v l a 对象被销毁。这 个s e r v l a c o n f i g 对象负责向s e r v i a 传递服务设置信息,如果传递失败就会发 生s e r v l e t e x c e p t i o n ,s e r v i a 将不能正常工作。当多个客户端请求一个s e r v i a 时,引擎为每个客户端启动一个线程,那么s e r v i a 类的成员变量会被所有的 线程共享。 ( 2 ) s e r v i c e 方法 当s e r v l e t 成功创建和初始化之后,s e r v l e t 就调用s e r v i c e 方法来处理用户 的请求并返回响应。s e r v i c e 0 是h t t p s e r v l a 类中的方法,可以在s e r v l e t 中直 接继承该方法或重写这个方法。方法描述为: p u b l i cv o i ds e r v i c e ( h t t p s e r v l e t r e q u e s tr e q u e s t ,h t t p s e r v l e t r e s p o n s er e s p o n s e ) t h r o ws e r v l a e x c e p t i o n ,i o e x c e p t i o n s e r v i a 引擎将两个参数传递给该方法,其中一个参数对象是 h t t p s e r v l e t r e q u e s t 类型的对象,该对象封装了用户的请求信息,此对象调用 相应的方法可以获取封装的信息,也就是说使用这个对象可以获取用户提交 的信息;另外一个参数对象是h t t p s e r v l a r e s p o n s e 类型的对象,该对象用 来响应用户的请求。 s e r v i c e 方法和b a i t 方法不同的是,b a i t 方法只被调用一次,而s e r v i c e 方 法可能被多次调用,当后续的客户请求s e r v i a 服务时,s e r v i a 引擎将启动一 个新的线程,在该线程中,s e r v i a 调用s e r v i c e 方法响应客户的请求,也就 是说,每个客户的每次请求都导致s e r v i c e 方法被调用执行,调用过程运行在 不同的线程中,互不干扰。 ( 3 ) d e s t r o y 方法 当s e r v i a 引擎终止服务时,比如关闭服务器等,d e s t r o y 0 方法会被执行, 销毁s e r v i a 对象。s e r v i a 可直接继承这个方法,般不需重写。方法描述为: p u b l i cd e s t r o y 0 优点与不足: 我们已经简单了解了s e r v l e t 的存活期和h t t p s e r v l a 类,但是并没有深入 探索s e r v i aa p i 。事实上,j a v as e r v i aa p i 既简单又有强大的功能,它使得 我们能够在一个简单的编程模型的帮助下扩充任何w e b 服务器的功能。 但是,s e r v i a 的最大缺点是不能有效的管理页面的逻辑部分和页面的输 出部分,导致s e r v i a 代码非常混乱,不易于编写,用s e r v i a 来管理网站是一 8 武汉理工大学硕士学位论文 件很困难的事情。为了克服s e r v l e t 的缺点,s u n 公司将j a v as e r v l e t 作为基 础,推出了j s p 技术,j s p 让我们觉得开发网站是如此的简单容易。 2 2j s p 概述 j s p 是j a v as e r v e rp a g e s 的缩写,是由s u n 公司倡导,许多公司参与,于 1 9 9 9 年推出的一种动态网页技术标准。j s p 是基于j a v as e r v l e t 以及整个j a v a 体系的w e b 开发技术,利用这一技术可以建立安全的、跨平台的先进动态网 站,这项技术还在不断的被更新和优化。 我们己经知道j a v as e r v l e t 是j a v a 语言的一部分,提供了用于服务器编程 的a p i ,j a v as e r v l e t 编写的j a v a 程序称为s e r v l e t ,它通过h t m l 与客户交互 信息。j s p 提供了s e r v l e t 的几乎所有好处,当一个客户请求一个j s p 页面时, j s p 引擎根据j s p 页面生成一个j a v a 文件,即一个s e r v l e t 。用j s p 支持 j a v a b e a n s 这一特点,可以有效的管理页面的逻辑部分和页面的输出部分。另 外,j s p 也可以和s e r v l e t 有效的结合,分离页面的逻辑部分和页面的输出部 分。 2 3 结合j s p 和s e r v l e t 开发w e b 应用 s e r v l e t 是可以生成二进制内容的唯一选择,它还善于执行控制逻辑。我 们经常不能准确的知道应该显示什么,或者应该采用什么格式,直到我们执 行了一些涉及到访问企业数据的处理。例如,如果我们试图访问一个数据库 但是失败了,我们想显示的信息可能与访问数据库成功检索出的数据完全不 同。为了处理这种情况,我们使用一个s e v l e t 控制器来执行处理,然后再转 到相应的j s p 视图。这是一种很好的办法,也是s l u t s 框架的起源思想。 当我们需要做一些处理的时候,在我们知道想要显示什么以及如何进行格 式化之前,采用s e r v l e t 比采用j s p 更好,它可以在选择把请求转发到什么j s p 视图作为最终显示之前先进行处理。 而j s p 网页在显示标志方面比s e r v l e t 要好。一方面是因为从j a v a 代码生 成标志比较困难,并且不便于维护。另一方面,j s p 主要由h t m l 或者x m l 组成,其中可以有少量的嵌入式动态内容,它们易于阅读和维护。也就是说, 9 武汉理工大学硕士学位论文 j s p 网页更适合于用作视图( v i e w ) 组件。一个视图就是数据模型的一个状态 显示。典型情况下,这个模型会是j a v ab e a n ,由j s p 视图使用 标 准操作进行访问。 由此可见,当我们需要控制页面的转向时,就可以选择s e r v l e t ,当我们 知道想要显示什么以及如何显示的时候,并且已经有了j a v a b e a n s 形式的所需 全部数据,那么应该选择j s p 视图。 2 4j s p 的m o d e l l 与m o d e l 2 设计方案 基于j s p 的设计方案主要有m o d e l l 与m o d e l 2 两种,它们分别面向不同 的应用场景,虽然它们的设计还不是那么优雅,但已初步体现了软件架构的 思想。 ( 1 ) j s p m o d e l l 设计 4 响应 7 lj s p l 浏 , | c | 览 三三) 3 、_ _ , 器 图2 - 1j s p m o d e l l j s pm o d e l l 是指j s p + j a v a b e a n 技术。在该模式中,j s p 页面独自响应请 求并经处理后把结果返回客户端,所有的业务数据通过j a v a b e a n 来处理,j s p 实现页面的显示。通过应用m o d e l l ,可以实现页面的显示和内容的初步分离。 但是大量使用此模式时可能带来一个副作用,那就是会导致在页面里嵌入 大量的j a v a 控制代码,当要处理的业务逻辑复杂时,这种情况会更糟。同时, 大量的内嵌代码使得页面变得很庞大,也很复杂,当页面的功能实现后交给 美工进行设计时,问题就变得更严重了。所以,在大型项目里,这种方法将 会导致页面的维护困难。 ( 2 ) j s p m o d e l2 设计 l o 武汉理工大学硕士学位论文 在前面我们提到了s e r v l e t 和j s p 可以互补,也就是用j s p 来表示页面显 示部分,用s e r v l e t 来控制它们。这样,请求最初被送到一个作为中介或者控 制器的s e r v l e t 中,它把请求分配到适当的j s p 网页和j a v a b e a n 处。这种方案 即为j s p m o d d2 设计。 这种方案在j a v aw e b 应用程序中包含了一个控制器s e r v l e t 作为整个应 用程序的入口。这个入口本身不产生输出,但会对请求进行处理,也可以管 理会话和应用程序状态,以及把请求重定向到适当的j s p 视图或者一个知道 如何处理请求的子控制器。模型由j a v ab e a n 生成,由控制器管理,并且可以 由j s p 视图使用。这种方案的实现经常在每个请求中包含一个操作或者类似 名字的参数。这个参数的值由控制器检查,控制器用它来决定如何处理此请 求。也可以由控制器j s p 或者s e r v l e t 来截获全部进入的请求,并且根据请求 决定正确的处理办法。 j s pm o d e l2 结构是建立便于维护的j s p 系统的最宝贵方式之一。它是真 正用于j s p 网页的设计方案。使用这种方案建立的系统比使用j s pm o d e l1 的 方式具有更强的灵活性和扩展性,并且也更好的把信息显示与内容分开。它 的独立组件比较多,但是每个组件都有明确定义的职责,并且j a v a 类和j s p 网页也在最适当的场合使用。这是一种著名的、非常出色的解决方案,和前 面介绍的结构比起来,它的j s p 代码更便于管理。 使用j s p m o d e l 2 结构,具体的优点是很丰富的。 ( 1 ) 提高了可维护性。几乎所有的j s p 网页都可以由设计开发组维护。 ( 2 ) 安全性由控制器管理,对于j s p 视图是透明的。 ( 3 ) 大大提高了代码重用性。 ( 4 ) 控制器s e r v l e t 以一致的方式透明的处理出错报告。 1 1 武汉理工大学硕士学位论文 第三章s t r u t s 框架的原理 理解w e b 应用程序设计包含哪些过程以及如何实现虽然很重要,但有一 种好办法是使用一个通用的请求控制器框架。

温馨提示

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

评论

0/150

提交评论