




已阅读5页,还剩83页未读, 继续免费阅读
(计算机软件与理论专业论文)基于strutsspringhibernate的架构设计及其在电子商务中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘。要 近年来,随着i n t e m e t 技术和企业信息化建设的发展,构建基于w e b 的应用系 统的需求越来越复杂,开发周期越来越紧迫。对于复杂多变的市场环境,开发伸 缩性强、扩展性好、重用性高和易维护、易管理的w e b 应用是当前w e b 技术发展 的热点之一。 针对以上问题,论文结合应用系统多层次体系结构发展的现状,对s t r u t s 、 s p r i n g 和h i b e r n a t e 框架进行深入分析。s t r u t s 是一个m v c 模式的框架,它将业 务代码与视图代码分离,有效地优化了系统结构,提高了系统的扩展性,降低系 统复杂度与维护难度。h i b e r n a t e 是一个对象关系数据库映射工具,通过h i b e r n a t e 的使用,能够很好地解决面向对象编程语言与关系数据库一起使用可能带来的种 种麻烦,使得程序设计人员可以减少对关系数据模型的依赖,致力于业务逻辑的 开发。s p r i n g 框架的使用将j 2 e e 层次结构中的业务层分离为业务逻辑层和数据持 久层,这样业务逻辑便交给s p r i n g 处理,而数据访问则交给h i b e r n a t e 处理,使 得层次结构更加清晰,便于系统的维护和扩展。 , 本文以基于j 2 e e 体系的w e b 开发方法为探讨的基线。首先,从s e r v l e t j s p 的技术原理,到结合这两种技术进行w e b 开发的m o d e ll 和m o d e l2 设计,再到实 现m o d e l2 的更佳方案一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 e b 开发框架;最后,详细论述了该架构在r o xn e t w o r k 电子商务系统 中的应用。通过实践表明,应用这种系统框架可以提高系统开发的效率,同时满 足系统扩展性和可维护性的要求。 关键词:s t r u t s ,s p r i n g ,h i b e r n a t e ,架构,电子商务 a b s t l r a c t a b s 仃a c t i nr e c e n ty e a r s ,t h e r eh a sb e e ng r e a t e rd e m a n d sf o ra p p h c a t i o ns y s t e m sb a s e do l l w e bt om e e tm o r ec o m p f i c a t e dr e q u i r e m e n t s ,s h o r t e rr & dt i m e s ot h ea p p l i c a t i o no f w e bw h i c hh a sb e t t e rd e v e l o p m e n t ,m a i n t a i n a b i l i t y , e x p a n s i b i l i t y , r e p e a t a b i l i t ya n de a s y m a n a g e m e n t ,i st h eh o t s p o to f t h ew e bt e c h n o l o g y a f t e rf r a m e w o r k w e b - b a s e di 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 e s t r u t s ,s p r i n ga n dh 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 ds y s t e m si 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 t t e mt h e o r y s t r u t si saf r a m e w o r kb a s e d o nm v cm o d e l ,w h i c hs e p a r a t e st h eb u s i n e s sc o d ea n dt h ev i e wc o d e ,o p t i m i z e st h e s y s t e ms t r u c t u r ee f f e c t i v e l y , e n h a n c e se x p a n s i b i l i t yo fc o m p l e x i t ys y s t e m ,a n dr e d u c e s c o m p l e x i t ya n dm a i n t a i n a b i l i t yo f t h es y s t e m h i b e r n a t ei sa no b j e c t - r e l a t i o n a lm a p p i n g t o o l ,v i au s i n gh i b e r n a t e ,c a nr e s o l v et h ep r o b l e m s p r o d u c e db yu s i n go b j e c to r i e n t e d l a n g u a g ea n dr e l a t i o n a ld a t a b a s e s p r i n gs e p a r a t e st h eb u s i n e s st i e ri n t ob u s i n e s sl o 西c t i e ra n dd a t ap e r s i s t e n c et i e ri nj 2 e eh i b e r a r c h y , t h e nt h eb u s i n e s sl o # ci sh a n d l e db y s p r i n g , a n dt h ed a t aa c c c s si sh a n d l e db yh i b e r n a t e , w h i c hm a k et h eh i b e r a r c h yd e a r , i n f a v o ro f m a i n t a i n a b i l i t ya n de x p a n s i b i l i t yo f t h es y s t e m t h ep a p e ri 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 f j 2 e e a r c h i t e c t u r e f i r s t l y , i n t r o d u c et 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 lla n dm o d e l2d 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 f i n t e r n a lm e c h a n i s mo fs t r u t sa r c h i t e c t u r e w h i c hc a nb e t t e ri m p l e m e n tt h em o d e l2a n ds oo i ls e c o n d l y , ia p p l i e dt h es t r u t st ot h e p 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 o t 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 daf 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 j i g hp e r f o r m a n c ed e v e l o p i n ga r c h i t e c t u r e f i n a l l y , a ne x a m p l eb a s e do n r o xn e t w o r ke - c o m m e r c es y s t e mi si n t r o d u c e dt oi l l u s t r a t et h ep r o c e s st ob u i l da l l m u l t i t i e r ss y s t e mw i t ht h eh e l po ft h ea r c h i t e c t u r e 。r e s u l t ss h o wt h a tt h i sn e w f r a m e w o r kh e l p st oi n c r e a s ew o r ke f f i c i e n c yi ne x p l o r a t i o n m e a n w h i l e , e x p a n s i b i l i t y e n dm a i n t a i n a b i l i t yo f t h es y s t e mw i t h i nt h i sf r a m e w o r ka r ea l s os a t i s f a c t o r y k e y w o r d s :s t r u t s ,s p r i n g , h i b e r n a t e , a r c h i t e c t u r e ,e - c o m m e r c e 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 垦是日期:2 矿。) 年占月手日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘广允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:重是导师签名:童夏燮 日期:z o o7 年6 月午日 第一章绪 论 1 1 研究背景 第一章绪论 框架是可重用的、半完成的应用程序,可以用来产生专门的定创程序。框架 运行在相同的机器上,期望从相同的设备输入信息然后再输出到相同的显示设备, 并且存储数据到相同的硬盘设备。作为开发人员都习惯于使用这些可以覆盖应用 开发同一性的工具包和开发环境构架,在这些公共基础上的应用框架可以为开发 人员提供能为产品提供可重用服务的基础架构。框架可以提供一系列具有以下特 征的骨架组件:首先,它们已经很好的应用在其它程序上;其次,它们随时可在 下一个项目中使用;最后,它们可被开发组织的其它团队使用。 如果构建框架,在完成时就要理解它,但是在开发人员被融入之前将花费很 长的时间。若要购买,还得学习它,在开发人员可以用它工作之前也要花费很长 时间。因此对于使用框架时是构建还是购买没有所谓正确的答案。但许多开发者 都会同意这一点,像s t r u t s 这样的框架能提供比从头开始开发更显著的投资回报, 特别是对于大型项目来说。s t r u t s 是m v c 架构技术的一种具体实现,它是一种符 合m v c 范例的j s p 开发技术,是对j s p 开发技术的继承和发展,包含了丰富的标 记库和独立于该框架工作的实用程序类。由于s t r u t s 给w e b 应用带来了良好的层 次划分,现在s t r u t s 己经成为用j a v a 创建w e b 应用的一个最流行的框架工具,目 前一些大型厂商也开始在j 2 e e 集成开发工具中嵌入s t r u t s 的支持。s t r u t s 的目标 是为了减少在运用m v c 设计模型来开发w e b 应用的时间,它将可以完成其中一 些繁重的工作。若想混合s e r v l e t 和j s p 的优点来建立可扩展的应用,s t r u t s 是一个 不错的选择。 h i b e r n a t e 作为一种开放源代码的对象关系映射框架,实现了对j d b c 的轻量 级对象封装,恰好满足了这个时代潮流的需求。h i b e r n a t e 是按照l g p l 许可证发 布的开放式源代码应用程序,它是“用于j a v a 的超高性能的对象关系持久性和查 询服务”。应用h i b e r n a t e 可以使得j a v a 程序员可以方便的用对象编程的思想将持 久性对象映射到关系数据库,而不必花费大量的开发时间去更新和维护复杂的数 电子科技大学硕士学位论文 据持久层,降低了j 2 e e 架构应用软件开发的难度和复杂度,提高j a v a 应用软件的 开发效率,进而使j a v a 的企业级应用开发更加容易、灵活、强大。 s p r i n g 是一个解决了许多在j 2 e e 开发中常见问题的强大开源框架。它提供了 管理业务对象的一致方法并且鼓励对接i :l 编程而小是对类编程的良好习惯。s p r i n g 通过i o c 依赖注入、a o p 应用、面向接口编程,来降低业务组件之间的耦合度, 增强系统扩展性。s p r i n g 由一系列模块组成,比如反转控制容器,面向切面,m v c 模型,持久层,数据访问对象和远程调用。这一系列的模块之间相互关联很少, 很多模块都可以独立使用。开发人员可以选择一个模块,一些模块,或者更多的 s p r m g 模块进行开发。 1 2 研究内容 网上购物是在i n t e r n e t 开放的网络环境下,基于浏览器服务器应用方式,实 现消费者的网上交易和在线电子支付的一种新型的商业运营模式。网上购物将传 统的购物流程电子化、数字化,一方面以电子流代替了实物流,可以大量减少人 力、物力;另一方面突破了时间和空间的限制,使得交易活动可以在任何时间、 任何地点进行,极大地方便了最终消费者,使您的购物过程变得轻松、快捷、方 便,从而大大提高了效率。 目前大多数网上购物系统是基于两层体系结构来进行设计和开发的。随着 i n t e r n e t 的飞速发展,传统的两层体系结构面临着严峻的挑战,其中最为突出的 问题是开发负担重、维护困难等。本文针对目前网上购物系统所面临的问题,基 于j 2 e e 框架,采用框架技术及设计模式,设计开发了一个网上购物系统。系统具 有高可靠性、可扩展性和可重用性的特点。 在本文中主要应用一种新0 r m 映射工具h i b e r n a t e ,它提供从j a v a 类到数 据表的映射和数据查询、恢复等机制,实现数据层对象的持久性,摒弃了直接使 用关系型数据库给我们带了的不便。而s t r u t s 是一种基于m v c 模式的开源框架。 s p r i n g 扮演了黏合剂角色,它就像一个强力的黏合剂,以一种非常简单、统一的 方式就能把各种各样的组件组合到一起,然后形成一个可交付的j 2 e e 应用软件。 采用s t r u t s 、s p r i n g 和h i b e r n a t e 相结合的多层架构能够充分发挥三者的优点, 为我们研究的电子商务系统提供了便利条件。 2 第一章绪论 1 3 研究意义 在项目开发过程中,我们选择s t r u t s 、s p r i n g 和h i b e r n a t e 这三种开源框 架来搭建系统架构。其意义在于,首先,提供免费、开源、有丰富的文档和稳定 的开发背景。其次,便于实现系统的大规模开发和管理。由于层次之间松散祸合, 在开发过程中,层与层之间的工作几乎是完全独立的,而不同的业务逻辑基于模 块进行开发,所以便于团队开发。再者,利于系统业务的重用和改动。基于这种 架构的w e b 应用是基于模块的,表示层和业务逻辑分离,所以不至于“牵一发而 动全身”。同时,这样也便于业务逻辑的重用。第四,良好的设计思想。s t r u t s 是 基于m v c 的框架,很好地把业务逻辑和表示层分离;h i b e r n a t e 是一个小巧的实 现对象关系映射的工具,把面向对象的设计开发与关系数据库联系起来了;s p r i n g 将j 2 e e 层次结构中的业务层分离为业务逻辑层和数据持久层,降低了业务组件之 间的耦合度,增强系统扩展性。 一 当然,基于这三种框架也有各自的缺点,如:在s t r u t s 中,a c t i o n 映射非常 复杂;h i b e r n a t e 的对象、关系之间的映射工作量很大;三者的配置文件都很复 杂等等。其实,这正是其灵活之处。因为把各层都完全分离了所以才易于重用和 可扩展,因而其灵活映射的配置文件才会很复杂。基于这三个框架的j 2 e e 架构开 发简洁、结构清晰,有很好的可扩展性和可维护性,非常适于面向对象和远程信 息服务系统的设计与开发。尤其随着i n t e r n e t 及全球信息网应用的快速发展,对 w e b 的应用不再仅仅要求具有发布静态信息的简单功能,同时要求具有实时动态 处理交互信息的能力,而且这些要求还在不断的变化和提高,即使利用最先进的 软件平台 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 这三种开源框架的出现很好地解决了这些问题,利用此框架 可以方便、快捷地开发具有高效、灵活和可扩展的w e b 应用系统。 1 4 论文结构组织 第一章绪论,简要介绍了论文的研究背景、研究内容和研究意义。 第二章s t r u t si v w c 框架,阐述了基于w e b 的i v f v c 模型,并对s t r u t sm v c 框 架的原理及其运行机制进行分析。 3 电子科技大学硕士学位论文 第三章h i b e r n a t e 对象持久化,详细地阐述了对象关系映射的原理,并对以其 原理为基础的数据持久化框架h i b e r n a t e 的体系结构、接口、运行机制及缓存机制 进行了深入分析。 第四章s p n n gi o c 与a o p ,介绍了s p r i n g ,并对s p r i n g 的i o c 及a o p 进行了 详细分析与研究。 第五章基于s t r u t s 、s p r i n g 和h i b e r n a t e 框架的架构设计j 通过综合分析s t r u t s 、 s p r i n g 与h i b e r n a t e 各自的优势,提出将这三个框架有效整合后的架构,并对架 构的工作流程和优点作了阐述。 第六章电子商务系统分析与设计,介绍利用当前架构,对电子商务系统进行 需求分析和详细设计。 第七章架构在电子商务系统中的应用,介绍利用当前架构实现电子商务系统 的过程,包括对象的持久化,业务对象的管理,以及表现层的实现。 第八章结束语,对全文做了总结,并且提出了下一步需要探索和研究的任务。 4 第二章s a - a t sm v c 框架 第二章s t r u t sm v c 框架 2 1 m o d e i1 体系结构 在使用j a v a 技术建立w e b 应用的实例中,由于j s p 技术的发展,很快这种便 于掌握和可实现快速开发的技术就成了创建w e b 应用的主要技术。j s p 页面中可以 非常容易地结合业务逻辑( j s p :u s e b e a n ) 、服务端处理过程( j s p :s c r i p l e t ) 和 h t m l ( ) 1 1 ,在j s p 页面中同时实现显示、业务逻辑和流程控制,从而可以 快速地完成应用开发。现在很多的w e b 应用就是由一组j s p 页面构成的。这种以 j s p 为中心的开发模型我们可以称之为m o d e l1 。m o d e l1 结构如图2 1 【2 】所示: 区阔 图2 - 1 m o d e l i 结构图 由图2 1 我们可以分析得出,m o d a l1 是一个以j s p 文件为中心的模式:在这 种模式中j s p 页面不仅负责表现逻辑,也负责控制逻辑,我们称之为逻辑耦合在 页面中。这种处理方式对一些规模很小的项目如:个简单的留言簿,也没什么 太大的坏处,实际上,人们开始接触一些对自己来说是新的东西的时候,比如, 用j s p 访问数据库时,往往喜欢别人能提供一个包含这一切的单个j s p 页面,因 为这样在一个页面上他就可以把握全局,便于理解。因此,这种开发模式在进行 快速和小规模的应用开发时,是有非常大的优势,但是用m o d a l1 模式开发大型系 统时,它的不足之处也便显露出来【3 】: 1 ) 应用的实现一般是基于过程的,一组j s p 页面实现一个业务流程,如果要 亏器 电子科技大学硕士学位论文 进行改动,必须在多个地方进行修改,这样非常不利于应用扩展和更新。 2 1 由于应用不是建立在模块上的,业务逻辑和表示逻辑混合在j s p 页面中 没有进行抽象和分离,所以非常不利于应用系统业务的重用和改动。 2 2m o d e i2 体系结构 考虑到m o d e l1 结构存在的这些问题,在开发大型的w e b 应用时必须采用不 同的设计模式一这就是m o d e l2 。m o d e l2 表示的是基于m v c 模式的框架1 4 1 。m v c 是m o d e l - - v i 删。c o n 仃o n 盯的简写。“m o d e l ”代表的是应用的业务逻辑( 通过 j a v a b e a n ,e j b 组件实现) ,“v i e w ”是应用的表现层( 由j s p 页面产生) ,“c o n 缸d 1 1 e r ” 是提供应用的处理过程控制( 一般是一个s e r v i a ) ,通过这种设计模型把应用逻辑、 处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用,从而 弥补了m o d e l1 的不足。m o d e l2 结构如图2 2 【5 】所示: 。需守 图2 - 2 m o d e l 2 结构图 由图2 - 2 我们可以分析得出,m o d e l2 引入了“控制器”这个概念,控制器一 般由s e r v l e t 来担任,客户端的请求不再直接送给一个处理业务逻辑的j s p 页面, 而是送给这个控制器,再由控制器根据具体的请求调用不同的业务逻辑,并将处 理结果返回到合适的页面。因此,这个s e r v l e t 控制器为应用程序提供了一个进行 前后端处理的中枢。一方面为输入数据的验证、身份认证、日志及实现国际化编 程提供了一个合适的切入点;另一方面也提供了将业务逻辑从j s p 文件剥离的可 能。业务逻辑从j s p 页面分离后,j s p 文件蜕变成一个单纯完成显示任务的东西, 这就是常说的v i e w 。而独立出来的业务逻辑变成人们常说的m o d e l ,再加上控制 器c o n t r o l l e r 本身,就构成了m v c 模式。 6 亏器 第二章s 缸u t s m v c 框架 s e r v i a 体系结构是建立在j a v a 多线程机制之上的,它的生命周期是由w e b 容 器负责的。当客户端第一次请求某个s e r v i a 时,s e r v i a 容器将会根据w e b x m 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 进程只是在w e b 服务器卸载时被卸载。s e r v l e t 容器会自动使用线程池等技术来支持系统的运行,如图2 3 1 6 1 所示: 图2 - 3s e r v l e t 线程池处理请求图 由于其多线程运行而具有很高的执行效率,因此,s e r v i a 具有很高的执行效 率。实践证明,m v c 模式为大型程序的开发及维护提供了巨大的便利。 m o d e l2 具有组件化的优点,从而更易于实现对大规模系统的开发和管理,但 是开发m v c 系统比简单的j s p 开发要复杂许多,其复杂性主要体现在: 1 ) 必须基于m v c 组件的方式重新思考和设计应用结构,原来通过建立一个 简单的j s p 页面就能实现的应用现在变成了多个步骤的设计和实现过程。 2 ) 所有的页面和组件必须在m v c 框架中实现,所以必须进行附加地开发工 作。 2 3 框架概述 随着软件开发的发展,在多层的软件开发项目中,可重用、易扩展的,而且 是经过良好测试的软件组件,越来越为人们所青睐。这意味着人们可以将充裕的 时间用来分析、构建业务逻辑的应用上,而非繁杂的代码工程。于是人们将相同 类型问题的解决途径进行抽象,抽取成一个应用模型,这也就是我们所说的 f r a m e w o r k ( 框架) t j 。 f r a m e w o r k 的体系提供了一套明确机制,从而让开发人员很容易的扩展和控制 7 电子科技大学硕士学位论文 整个框架开发上的结构。通常,f r a m e w o r k 的结构中都有一个“命令和控制”组件 ( ”c o m m a n da n dc o n t r o l ”c o m p o n e n t ) 一- f r a m e w o r kf a c t o r y a n dm a n a g e r 。f r a m e w o r k 的体系结构如图2 4 【8 1 所示: 囤2 - 4f r a m e w o r k 的体系结构图 通过基于请求响应( r e q u e s t r e s p o n s e ) 模式的w e bf r a m e w o r k ,基本上由如 下几个部分组成: 控制器( c o n t r o l l e r ) 一控制整个f r a m e w o r k 中各个组件的协调工作。 业务逻辑层( b u s i n e s sl o g i c ) 一对f r a m w o r k 本身来说,这里仅仅只是概 念和几个提供服务的基础组件,真正的实现与客户的业务逻辑接轨,还需 要开发人员在f r a m e w o r k 上再次扩展。 数据逻辑层( d a t al o g i c ) 一绝大应用系统都需要涉及到数据交互,这一 层次主要包括了数据逻辑和数据访问接口。 2 4s t r u t s 体系结构 s t r u t s 由一组相互协作的类、s c f l v c t 以及j s pt a g l i b 组成。基于s t r u t s 构架的 w e b 应用程序基本上符合j s pm o d e l2 的设计标准,可以说是m v c 设计模式的一 种变化类型。根据上面对w e bf r a m e w o r k 的描述,我们很容易理解s t r u t s 实际上 就是一个w e bf r a m e w o r k g j 。 s t r u t s 有其自己的控制器( c o n t r o l l e r ) ,同时整合了其他的一些技术去实现模 型层( m o d e l ) 和视图层( v i e w ) 。在模型层,s t r u t s 可以很容易的与数据访问技术 相结合,包括j d b c 、h i b e r n a t e 和e i b 等。在视图层,s t l a a t s 能够与j s p 、f r e e m a r k e r 8 第二章s w a t s m v c 框架 等这些表示层组件相结合。 既然s 仃u t s 叫做w e bf r a m e w o r k ,那么它肯定是基于w e b 的应用系统开发。 按照j 2 e e 体系结构的标准,s t r u t s 应当和j s p s e r v l e t 一样,存在于w e bc o n t a i n e r 中。s t r u t s 与w e ba p p l i c a t i o n 的关系如图2 - 5 t l o 】所示: 图2 - 5s t r u t s 与w e b a p p l i c a t i o n 的关系图。 我们说s t r u t sf r a m e w o r k 是m v c 模式的体现,下面我们就从分别从模型、视 图、控制器来分析一下s t r u t s 的体系结构。s t r u t s 的体系结构如图2 - 6 1 1 1 所示: | _ _ _ i _ 焉曩万曩1 i 譬! j 黪蠛n 蛳x i | 圃 图2 - 6s t r u t s 体系结构图 电子科技大学硕士学位论文 作为一个m v c 的框架,s t r u t s 对m o d e l 、v i e w 和c o n t r o l l e r 都提供了对应的 实现组件,对应上面的u m l 图,分别进行介绍,并且看看它们是如何结合在一起 的。 1 ) c o n t r o l l e r :控制器的作用是从客户端接受请求,并且选择执行相应的业 务逻辑,然后把响应结果送回到客户端。在s t r u t s 中c o n t r o l l e r 功能 由图中a c t i o n s e r v l e t 和a c t i o n m a p p i n g 对象构成:核心是一个s e r v l e t 类型的对象a c t i o n s e r v l e t ,它用来接受客户端的请求。a c t i o n s e r v l e t 包括一组基于配置的a c t i o n m a p p i n g 对象,每个a c t i o n m a p p i n g 对象实 现了一个请求到一个具体的m o d e l 部分中a c t i o n 处理器对象之间的映射。 2 ) m o d e l :m v c 系统中的m o d e l 部分从概念上可以分为两类一系统的内部 状态和改变系统状态的动作。s t r u t s 为m o d e l 部分提供了a c t i o n 和 a c t i o n f o r m 对象,所有的a c t i o n 处理器对象都是开发者从s t r u t s 的a c t i o n 类派生的子类。a c t i o n 处理器对象封装了具体的处理逻辑,调用业务逻辑 模块,并且把响应提交到合适的v i e w 组件以产生响应。s t r u t s 提供的 a c t i o n f o r m 组件对象,它可以通过定义属性描述客户端表单数据。开发者 可以从它派生子类对象,利用它和s t r u t s 提供的自定义标记库结合可以实 现对客户端的表单数据的良好封装和支持,a c t i o n 处理器对象可以直接对 它进行读写,而不再需要和r e q u e s t 、r e s p o n s e 对象进行数据交互。通过 a c t i o n f o r m 组件对象实现了对v i e w 和m o d e l 之间交互的支持。s t r u t s 通 常建议使用一组j a v a b e a n 表示系统的内部状态,根据系统的复杂度也可 以使用像e n t i t ye j b 和s e s s i o ne j b 等组件来实现系统状态。s t r u t s 建议 在实现时把“做什么? ( a c t i o n ) 和“如何做”( 业务逻辑) 分离。这样可 以实现业务逻辑的重用。 3 ) v i e w :s t r u t s 应用中的v i e w 部分是通过j s p 技术实现的。s t r u t s 提供了自 定义的标记库可以使用,通过这些自定义标记可以非常好地和系统的 m o d e l 部分交互,通过使用这些自定义标记创建的 j s p 表单,可以实现和 m o d e l 部分中的a c t i o n f o r m 的映射,完成对用户数据的封装,同时这些 自定义标记还提供了像模板定制等多种显示功能。 s t r u t s 框架的处理流程清楚的体现了m v c 系统的特点,a c t i o n s c r v l c t 处理客 户请求,利用配置的a c t i o n m a p p i n g 对象把请求映射到a c t i o n 处理器对象进行处 1 0 第二章s t r u t sm v c 框架 理。a c t i o n 处理对象访问a c t i o n f o r m 中的数据,处理和响应客户请求,它还调用 后台的b e a n 组件,这些组件封装了具体的业务逻辑。a c t i o n 处理器对象根据处理 结果通知c o n 仃o u e r ,c o n t r o l l e r 进行下一步的处理。 2 5s t r u t s 工作原理 对于s t r u t s 如何控制、处理客户请求,我们将通过对s 衄岫的五个核心组件【1 2 l 的介绍来具体说明。这几个组件就是:a c t i o n s c r v l c t 、a c t i o n 、a c t i o n m a p p i n g 、 a c t i o n f o r w a r d 和a c t i o n f r o m 。 1 ) a c t i o n s e r v l e t a c t i o n s e r v l e t 继承自j a v a x s e r v l e t h t t p h t t p s e r v l e t 类,其在s t r u t s f r a m e w o r k 中扮演的角色是中心控制器,它提供一个中心位置来处理全部的终 端请求。控制器a c t i o n s e r v l e t 主要负责将h t t p 的客户请求信息组装后,根 据配置文件的指定描述,转发到适当的处理器。 中心控制器为所有的表示层请求提供了一个集中的访问点。这个控制器提 供的抽象概念减轻了开发者建立公共应用系统服务的困难,如管理视图、会话 及表单数据。它也提供一个通用机制如错误及异常处理,导航,国际化,数据 验证,数据转换等。 当用户向服务器端提交请求的时候,实际上信息是首先发送到控制器 a c t i o n s e r v l e t ,一旦控制器获得了请求,其就会将请求信息传交给一些辅助 类( h e l p e rc l a s s e s ) 处理。这些辅助类知道如何去处理与请求信息所对应的 业务操作。在s t r u t s 中,这个辅助类就是o r g a p a c h e s t r u t s a c t i o n a c t i o n 。 通常开发者需要自己继承a c i t o n 类,从而实现自己的a c t i o n 实例。 2 ) a c t i o n a c t i o n s e r v l e t 把全部提交的请求都被控制器委托到r e q u e s t p r o c e s s o r 对 象,r e q u e s t p r o c e s s o r 使用s t r u t s c o n f i g x m l 文件检查请求u r i 找到动作 a c t i o n 标示符。 按照s e r v e l t 的标准,所有的s e r v l e t 必须在w e b 配置文件( w e b x m l ) 中 声明。同样,a c t o i n s e r v l e t 必须在w e ba p p l i c a t i o n 配置文件( w e b x m l ) , 中描述,相关配置信息如下: 电子科技大学硕士学位论文 a c t i o n o r g a p a c h e s t r u t s a c t i o n a c t i o n s e r v l e t 全部的请求u r i 以乖d o 的模式存在并映射到这个s e r v l e t ,其配置如下: a c t i o n * d o 一个该模式的请求u r i 符合如下格式: h t t p :f l 嘲骊m y _ s i t en a m e c o m m y c o n t e x t a c t i o n n a m e d o 一个a c t i o n 类的角色,就像客户请求动作和业务逻辑处理之间的一个适配器, 其功能就是将请求与业务逻辑分开。这样的分离,使得客户请求和a c t i o n 类之间 可以有多个点对点的映射。而且a c t i o n 类通常还提供了其它的辅助功能,比如: 认证、日志和数据验证。a c t i o n 最为常用的是e x e c u t e ( ) 方法,其方法定义如 下所示: p u b l i ca c t i o n f o r w a r de x e c u t e ( a c t i o n m a p p i n gm a p p i n g , a c t i o n f o r mf o r m , j a v a x s e r v l e t s e r v l e t r e q u e s tr e q u e s t , j a v a x s e r v l e t 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 w sj a v a i o i o e x c e p t i o n ,j a v a x s e r v l e t s e r v l e t e x c e p t i o n 当c o n t r o l l e r 收到客户的请求的时候,在将请求转移到一个a c t i o n 实例时, 如果这个实例不存在,控制器会首先创建,然后会调用这个a c t i o n 实例的e x e c u t e0 方法。s t r u t s 框架为应用系统中的每一个a c t i o n 类只创建一个实例。因为所有 的用户都使用这一个实例,所以必须确定a c t i o n 类运行在一个多线程的环境中。 图2 7 t 1 3 1 显示了一个e x e c u t e0 方法如何被访问: 第二章s t r u t sm v c 框架 图2 7e x e c u t e 0 方法访问图 3 ) a c t i o n m a p p i n g 上面讲到了一个客户请求是如何被控制器转发和处理的,但是,控制器如 何知道什么样的信息转发到什么样的a c t i o n 类呢? 这就需要一些与动作和请求信 息相对应的映射配置说明。在s t r u t s 中,这些配置映射信息是存储在特定的x m l 文件( 比如s t r u t s c o n f i g x m l ) 。 这些配置信息在系统启动的时候被读入内存,供s t r u t s 框架在运行期间使用。 在内存中,每一个 元素都与o r g a p a c h e s t r u t s a c t i o n a c t i o n m a p p i n g 类的一个实例对应。下表就显示了一个登陆的配置映射: a c t i o n - m a p p i n g s ) f o r w a r dn a m e = “w e l c o m e p a t h = 4 w e l c o m e j s p “b f o r w a r dn a m e = “f a i l u r e “p a t h = 4 l o g o n _ f a i l u r e j s p “n 上面的配置表示:当可以通过l o g o n a c t i o n d o ( 此处假设配置的控制器映射 为丰d o ) 提交请求信息的时候,控制器将信息委托c o m t e s t l o g o n a c t i o n 处理。 调用l o g o n a c t i o n 实例的e x e c u t e 0 方法。同时将m a p p i n g 实例和所对应的 1 3 电子科技大学硕士学位论文 l o g o n f o r mb e a n 信息传入。其中n a m e = l o g o n f o r m ,使用的f o r m - b e a n 元素所声明 的a c t i o n f o r mb e a n 。有关f o r m - b e a n 的声明如下所示: f o r m - b e a nn a m e = 1l o g i n f o r m “t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【中考专题】2026年中考数学专项提优复习:代数式【附答案】
- 2025产品代理合同范本
- 2025年大庆油田有限责任公司春季高校毕业生招聘模拟试卷附答案详解(完整版)
- 2025合同买卖协议书样本
- 2025江西赣州经济技术开发区退役军人服务中心招聘见习生1人考前自测高频考点模拟试题及答案详解(夺冠)
- 2025年四川省成都市青白江区七所“两自一包”公办学校招聘教师(152人)考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025医疗机构专家劳动合同书
- 2025年牡丹江绥芬河市公开招聘公益性岗位工作人员20人(第一批)考前自测高频考点模拟试题及答案详解(夺冠系列)
- 焦作师范考试题库及答案
- 煤矿班长考试题库及答案
- 机器人学导论 课件 第2章 机器人运动学
- 贴地砖协议书范本
- 机泵基础知识培训课件
- 殡葬基础知识培训课件
- 湘教版七年级上册数学第一章有理数单元测试卷(含答案)
- 小学教育专业认证汇报
- 如何撰写课题开题报告课题研究方案
- 非计划性拔管的预防与护理
- 第3课 公民意味着什么 第一课时 公民身份从何而来 教学设计-2024-2025学年道德与法治六年级上册统编版
- 2024年达州市招聘事业单位工作人员笔试真题
- 《烘焙技巧甜点制作》课件
评论
0/150
提交评论