已阅读5页,还剩65页未读, 继续免费阅读
(控制理论与控制工程专业论文)基于mvc设计模式的struts的研究与改进.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南开大学学位论文使用授权书 根据南开大学关于研究生学位论文收藏和利用管理办法,我校的博士、硕士学位获 得者均须向南开大学提交本人的学位论文纸质本及相应电子版。 本人完全了解南开大学有关研究生学位论文收藏和利用的管理规定。南开大学拥有在 著作权法规定范围内的学位论文使用权,即:( 1 ) 学位获得者必须按规定提交学位论文( 包 括纸质印刷本及电子版) ,学校可以采用影印、缩印或其他复制手段保存研究生学位论文, 并编入南开大学博硕士学位论文全文数据库;( 2 ) 为教学和科研目的,学校可以将公开 的学位论文作为资料在图书馆等场所提供校内师生阅读,在校园网上提供论文目录检索、文 摘以及论文全文浏览、下载等免费信息服务;( 3 ) 根据教育部有关规定,南开大学向教育部 指定单位提交公开的学位论文;( 4 ) 学位论文作者授权学校向中国科技信息研究所和中国学 术期刊( 光盘) 电子出版社提交规定范围的学位论文及其电子版并收入相应学位论文数据库, 通过其相关网站对外进行信息服务。同时本人保留在其他媒体发表论文的权利。 非公开学位论文,保密期限内不向外提交和提供服务,解密后提交和服务同公开论文。 论文电子版提交至校图书馆网站:h t t p :2 0 2 1 1 3 2 0 1 6 1 :8 0 0 l i n d e x h t m 。 本人承诺:本人的学位论文是在南开大学学习期间创作完成的作品,并已通过论文答辩; 提交的学位论文电子版与纸质本论文的内容一致,如因不同造成不良后果由本人自负。 本人同意遵守上述规定。本授权书签署一式两份,由研究生院和图书馆留存。 作者暨授权人签字: 王猛 2 0 1 0 年5 月2 7 日 南开大学研究生学位论文作者信息 论文题目 基于m v c 设计模式的s t r u t s 的研究与改进 姓名 王猛 学号 2 1 2 0 0 7 0 2 6 8 答辩日期2 0 1 0 年5 月2 7 日 论文类别博士口学历硕士囤硕士专业学位口 高校教师口同等学力硕士口 院系所 信息技术科学学院 专业 控制理论与控制工程 联系电话 l5 8 2 2 8 8 6 0 5l e m a i l w a n g m e n g l l 2 6 m a i l n a n k a l e d u c n 通信地址( 邮编) :南开大学西区公寓3 - 1 - 1 0 3 备注:是否批准为非公开论文否 注:本授权书适用我校授予的所有博士、硕士的学位论文。由作者填写( 一式两份) 签字后交校图书 馆,非公开学位论文须附南开大学研究生申请非公开学位论文审批表。 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下进行研究工作所 取得的研究成果。除文中已经注明引用的内容外,本学位论文的研究成果不包 含任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所 涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本 学位论文原创性声明的法律责任由本人承担。 学位论文作者签名: 王猩2 0 1 0 年5 月2 7 日 非公开学位论文标注说明 根据南开大学有关规定,非公开学位论文须经指导教师同意、作者本人申 请和相关部门批准方能标注。未经批准的均为公开学位论文,公开学位论文本 说明为空白。 论文题目 申请密级口限制( 2 年)口秘密( 1 0 年)口机密( 2 0 年) 保密期限 2 0 年月日至2 0年月 日 审批表编号批准日期 2 0 年月日 限制2 年( 最长2 年,可少于2 年) 秘密1 0 年( 最长5 年,可少于5 年) 机密2 0 年( 最长l o 年,可少于1 0 年) 摘要 摘要 目前,利用j s p 技术开发w e b 应用程序越来越流行,而推出j s p 技术的s u n 公司结合w e b 应用的市场需求,也为基于j s p 的w e b 应用开发定义了设计模型, 其中之一就是“模型视图控制器( m v c ) ”设计模型。作为m v c 设计模型的 经典实现,s t r u t s 有效地提高了程序的开发效率,在w e b 系统开发中的应用越来 越广泛。然而在实际的应用中,s t r u t s 也有其不足之处,所以对s t r u t s 进行研究 和改进,对于其更加有效地服务于w e b 应用的开发具有积极意义。 本论文细致分析和研究了m v c 的体系结构、s t r u t s 的工作流程以及它们的 特点,并且结合基于s t r u t s 的实际项目开发过程,总结出s t r u t s 的优势和不足。 接下来,针对s t r u t s 暴露出来的具体问题,通过s t r u t s 的源代码,找到相应的切 入点,对s t r u t s 框架的内部机制进行了分析和研究,并且对s t r u t s 做了相应的扩 展和改进。同时,在本论文中,还给出了改进后的s t r u t s 在具体开发项目中的实 现及其实现效果,更直接的说明了改进的s t r u t s 的应用更加有效的提高了w e b 应用开发的效率。 关键词tm v cs t r u t ss t r u t s 的改进 a b s t r a c t a b s t r a c t a tp r e s e n t ,t h eu s eo fj s pt e c h n o l o g yi sm o r ea n dm o r ep o p u l a r 。t h es u n c o r p o r a t i o n ,l a u n c h e dt h ej s pt e c h n o l o g y ,c o m b i n e dm a r k e td e m a n d ,d e f i n e dd e s i g n m o d e lf o rj s p b a s e dt h ed e v e l o p m e n to fw e ba p p l i c a t i o n o n eo fw h i c hi st h e ”m o d e l - v i e w c o n t r o l l e r ( m v c ) ”d e s i g nm o d e l a st h ec l a s s i c a ld e s i g nm o d e lo ft h e m v c ,s t r u t si n c r e a s e se f f i c i e n c yo fp r o g r a md e v e l o p m e n te f f e c t i v e l y a n ds t r u t si s m o r ew i d e l yi nt h ed e v e l o p m e n to fw e ba p p l i c a t i o n h o w e v e r ,s t r u t sh a si t s s h o r t c o m i n g si np r a c t i c a la p p l i c a t i o n s s oi ti ss e n s i t i v ep o s i t i v e l yt os e r v i c ef o rt h e d e v e l o p m e n to fw e ba p p l i c a t i o nm o r ee f f e c t i v e l yb ys t u d y i n ga n di m p r o v i n go n s t r u t s t h i sp a p e ra n a l y z e da n dr e s e a r c h e dt h em v c a r c h i t e c t u r e ,s t r u t sw o r k f l o wa s w e l la st h e i rc h a r a c t e r i s t i c sd e t a i l l y i ts u m m e du pt h ea d v a n t a g e sa n ds h o r t c o m i n g s o fs t r u t sb a s e do nt h ea c t u a ld e v e l o p m e n tp r o j e c tw h i c hb a s e do nt h es t r u t s n e x t ,f o r t h ee x p o s e ds p e c i f i cp r o b l e m so fs t r u t s ,t h i sp a p e ra n a l y z e da n dr e s e a r c h e dt h e i n t e r n a lm e c h a n i s mo ft h es t r u t sf r a m e w o r ka n dm a d et h ec o r r e s p o n d i n ge x t e n s i o n s a n di m p r o v e m e n t sa f t e rf i n d i n gt h ea p p r o p r i a t es t a r t i n gp o i n tt h r o u g ht h es o u r c ec o d e o fs t r u t s m e a n w h i l e ,t h i sp a p e ra l s os h o w e da c h i e v er e s u l t so fi m p r o v e ds t r u t si nt h e s p e c i f i cd e v e l o p m e n tp r o j e c t s ,w h i c hc o n f i r m e dm o r ed i r e c tt h et r u t ho fi m p r o v i n gt h e e f f i c i e n c yo fw e ba p p l i c a t i o nd e v e l o p m e n ta f t e ru s i n gi m p r o v e ds t r u t s k e yw o r d s :m v c s t r u t s i m p r o v e m e n to fs t r u t s i i 目录 目录 第一章引言1 第一节研究背景1 第二节本文的研究内容及意义2 1 - 2 1 本论文的研究内容2 1 2 2 本论文的研究意义3 第三节论文结构3 第二章m v c 和设计模型结构分析5 第一节m v c 设计模式5 2 1 1 设计模式与m o d e l1 开发模型5 2 1 2m o d e l2 开发模型7 第二节s t r u t s 的基本组件1 0 2 2 1s t r u t s 的工作流程1 0 2 2 2j s p 标签库1 2 2 2 3 插件1 2 2 2 4s t r u t s 基本组件包1 3 2 2 5s t r u t s 的优点以及缺点分析1 4 第三章s t r u t s 设计模型的研究与改进1 6 第一节控制器的改进1 6 3 1 1s t r u t s 的初始化过程1 7 3 1 2 多个配置文件的解析1 8 3 1 3 控制器的改进2 0 第二节s t r u t s 应用程序的改进方法2 2 3 2 1j a v a 的反射机制2 3 3 2 2j a v a 反射机制应用2 5 3 2 3 动态f o r m 的改进2 7 i i i 目录 第三节模型( m o d e l ) 层的改进3 4 3 3 1m o d e l 层中引入数据持久化3 4 3 3 2 数据持久化的实现3 5 第四节s t r u t s 的其他改进3 9 3 4 1 控制逻辑改进3 9 3 4 2 扩展插件4 2 3 4 3s t r u t s 标签库的扩展4 3 3 4 4 中文请求处理4 5 第四章改进后的s t r u t s 设计模型应用4 7 第一节自来水调度系统概述4 7 4 1 1 系统应用背景4 7 4 1 2 系统的运行方式4 7 4 1 3 系统开发运行环境4 9 4 1 4 功能需求4 9 第二节自来水调度系统的实现5 1 4 2 1 导入j a r 文件5 1 4 2 2 系统配置文件的配置5 3 4 2 3 业务处理部分的实现5 4 第五章总结与展望5 8 参考文献6 0 致谢6 2 个人简历6 3 i v 第一章引言 第一章引言 第一节研究背景 随着计算机网络和计算机技术的发展,i n t e m e t 不再只是人们交流和获取信 息的途径,而将成为一个大的分布式的计算平台,电子商务等各种很有发展前 途的应用都将以这一平台为基础。与此同时,越来越多的企业也需要根据自己 的企业管理和业务流程量身定做的应用软件。 目前的应用软件架构主要有两种,其中一种是c s f l j ( c l i e n t s e r v e r ) 模式的 两层结构,即客户机服务器结构。基于此种架构的应用因为响应速度快、操作 界面的个性化、对复杂流程的适应快,在面世之初受到客户热捧。然而随着互 联网的发展,企业集团化的加强,分支机构的设立,这种传统的架构已无法满 足客户的需求,其应用也开始受到冲击。 另外一种应用软件架构是b s t 2 l ( b r o w s e r s e r v e r ) 模式结构,即浏览器服务器 结构,此种结构是随着i n t e m e t 技术的兴起的,实现了对c s 结构的改进。b s 结构,主要是利用了不断成熟的浏览器技术,结合浏览器的多种s c r i p t 语言 ( v b s c r i p t 、j a v a s c r i p t 等) 和a c t i v e x 技术,用通用浏览器就实现了原来需要复杂 专用软件才能实现的强大功能,节约了开发成本,是一种全新的软件系统构造 技术。b s 最大的优点就是可以在任何地方进行操作而不用安装任何专门的软 件。只要有一台能上网的电脑就能使用,客户端可实现零维护。 随着网络技术的迅速发展,基于b s 的多层w e b 体系结构逐渐发展成熟, 多层w e b 应用的开发已成为当前发展的主流。在当前各种w e b 应用软件的开发 技术中,由s u n 公司提出的j 2 e e 技术受到的关注越来越多,应用也越来越广 泛。然而j 2 e e 这种技术本身并无法解决w e b 应用软件开发中遇到的问题。比 如在多层w e b 体系结构的设计中,普遍存在软件可重用程度低、维护工作繁琐、 应变能力较弱等不足。同时,多层w e b 应用软件需要面对复杂的网络环境、多 样化的应用需求、灵活的业务模式、复杂的业务流程、众多的组织机构及层次、 角色分工多等问题,在业务和技术上也是复杂多变的。 对于上述多层w e b 应用开发的诸多问题以及考虑到实际开发当中,各层之 第一章引言 间既需要密切配合又要尽可能地使各层的开发相对独立,减少各层之间的耦合 程度,避免开发人员的相互制约,m v c ( m o d e l v i e w - c o n t r o l l e r ,模型视图控 制器) 设计模式【3 】被提出。同时随着j s p 4 1 ( j a v as e r v e rp a g e ) 技术的成熟,越 来越多的开发人员开始使用w e b 应用框架开发程序,框架为w e b 应用提供了完 备的软件架构和相关的软件包,极大地提高了开发w e b 应用的速度和效率,并 使得维护w e b 应用变得更加容易。 在众多的框架中,s t r u t s 5 j 是基于m v c 设计模式的比较成熟、应用广泛的开 源框架之一。该框架为j a v aw e b 应用系统的开发者提供了一个结构清晰、功能 强大、成本低廉、容易扩展及方便维护的平台。然而尽管如此,s t r u t s 也只能说 是某类应用的半成品,是一个可以被许多应用程序所采用的程序模板,用来提 供这些应用的公有部分,所以针对许多具体的应用,s t r u t s 有其不足之处。本人 参加了“天津自来水集团调度信息系统”项目的设计与开发,此项目的开发使 用了m v c 设计模式以及基于此模式的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 框架开 发w e b 应用软件,可以说基于s t r u t s 的应用开发非常广泛,从而认识到为了提 高程序的开发效率,减轻开发人员的负担,有必要对s t r u t s 的进行扩展和改进。 第二节本文的研究内容及意义 1 2 1 本论文的研究内容 本论文在使用m v c 设计模式以及s t r u t s 框架开发实际项目的基础上,研究 分析了m v c 以及s t r u t s 的体系结构和工作流程,提出了对s t r u t s 的扩展和改进 方法。主要的研究内容有以下几个方面: ( 1 ) 基于b s 结构的应用软件开发所采用的设计模式,特别是s u n 公司 在推出j s p 之后为w e b 应用定义的两种开发模型。分析了两种开发模型各个组 成部分在w e b 应用开发中的作用以及工作流程,总结出它们的优势和不足。 ( 2 ) 研究s t r u t s 实现m v c 设计模式的机制以及s t r u t s 的基本组件,并且深 入分析s t r u t s 在w e b 应用软件开发中的工作流程、各组件在应用程序开发各不 同部分中的功能作用。同时,根据实际开发项目的体会,总结出了s t r u t s 的优缺 2 第一章引言 点。 ( 3 ) 针对s t r u t s 在项目开发过程中暴露出的不足,如程序复杂,后期维护 困难等,提出了对s t r u t s 的具体的扩展和改进方法。 ( 4 ) 将改进后的s t r u t s 框架应用到“天津自来水集团调度信息管理系统 项目中,进行了实际的应用检验,分析框架改进后的应用效果,并阐述了项目 开发过程中,使用改进后s t r u t s 框架的具体步骤和方法。 1 2 2 本论文的研究意义 本论文所研究的问题基于“天津自来水集团调度信息管理系统 项目,具 体的研究点以及要解决的问题都有很强的针对性,论文的研究成果最终也是要 应用到这一具体的项目开发过程中,然而,即使如此,本论文的研究也有其普 遍性的意义: ( 1 ) 本论文中对s t r u t s 的优缺点分析是在具体的开发项目中所体会到的, 不过基本上可以肯定的是,其他开发人员在做基于s t r u t s 的项目开发时也会遇到 类似的问题。所以本论文的研究成果依然可以应用到更多的实际应用中,而不 是单单的具体到天津自来水这一项目。 ( 2 ) 本论文提出了对s t r u t s 的改进方法,并且将改进后的s t r u t s 在天津自 来水调度系统的具体实现做了阐述,包括构建项目的s t r u t s 架构的前期准备工 作、s t r u t s 的各个配置文件的配置过程以及针对项目中的一个具体模块的实现过 程的介绍等。通过s t r u t s 在项目中具体实现,更能形象的说明s t r u t s 的工作流程, 更好的把握s t r u t s 的整体。 ( 3 ) s t r u t s 是一个比较优秀的开源框架,本论文在对s t r u t s 的某些改进中, 对s t r u t s 的部分源代码进行了比较细致的分析和研究,并且在对这部分源码理解 的基础上,做了一些改动。对s t r u m 源码的理解有助于更加深刻地认识和理解 s t r u t s 内部工作机制,有利于在项目的开发中更加娴熟地应用s t r u t s ,并且还可 以以s t r u t s 为参考模型创建自己的基于m v c 设计模式的框架。 第三节论文结构 结合论文的研究内容,本论文在组织结构上分为以下五个章节: 3 第一章引言 第一章是论文的引言部分,介绍了论文研究背景,研究内容以及意义。 第二章比较详细的介绍了s u n 公司推出j s p 以来的两种设计模式及其设计 思想,并且指出了它们的优缺点。接下来介绍其中一种设计模式s t r u t s 的实现, 深入分析了它的工作流程、基本组件以及优缺点。 第三章是本论文的重点部分,即s t r u t s 的研究与改进。在这一章将会对s t r u t s 进行细致的研究,并充分利用s t r u t s 的优点针对它的几个方面的不足之处进行改 进,从而解决项目实际开发过程遇到的问题。 第四章简要介绍已开发的项目,并且比较细致的说明了改进的s t r u t s 在项目 中的实现过程。 第五章首先对前面的己做的具体研究工作进行了总结,同时也说明了在本 论文中没有涉及到的有关s t r u t s 的一些方面,并指出了对s t r u t s 框架可进行的深 入研究工作和方向。 4 第二章m v c 和设计模型结构分析 第二章m v c 幂f l 设计模型结构分析 第一节i i v c 设计模式 2 1 1 设计模式与m o d ei1 开发模型 程式设计是思维具体化的一种方式,是思考如何解决问题的过程,设计模 式【6 】是在解决问题的过程中,一些良好思路的经验集成,最早对设计模式做出全 面阐述并将其提升到理论高度并规范化的当属g o f 的著作,它最早将经典的2 3 种模式集合在一起说明,对后期学习程式设计,尤其是对从事物件导向程式设 计的人们起了莫大的影响。后来设计模式一词被广泛的应用到各种经验集成, 甚至还有反模式( a n t i p a t t e m ) ,反模式主要是说明如何避开一些常犯且似是而 非的程式设计思维。 设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对 象的描述。设计模式确定了所包含的类和实例,它们的角色、协作方式以及职 责分配,每一个设计模式都集中于一个特定的面向对象设计问题或设计要点。 简而言之,设计模式( d e s i g np a t t e r n ) 是一套被反复使用、多数人知晓的、经过 分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码 更容易被他人理解、保证代码可靠性。 当s u n 公司推出j s p 技术时,它也为j s p 技术的运用提供了开发路线图, 为建立基于j s p 的w e b 应用定义了开发模型。在早期的j a v aw e b 应用中,j s p 文件负责业务逻辑、控制网页流程并创建h t m l ,如图2 1 所示,此时m o d e l1 ( 模型1 ) f 7 】是主要的解决方案。 图2 1j s p 作为独立的模块 5 第二章m v c 和设计模型结构分析 m o d e l1 的体系结构非常简单,如图2 2 所示。w e b 浏览器的请求发送给j s p 或s e r v l e t ,然后j s p 或s e r v l e t 负责这个请求的全部事务,包括处理请求、验证 数据、处理业务逻辑以及产生应答,并使用j a v a b e a n 处理业务逻辑。实质上m o d e l 1 是j s p + j a v a b e a n 模式,j s p 充当着控制器与视图的双重身份,j a v a b e a n 为模型 身份。 w e b 服务器数据库 图2 2m o d e l1 模式体系结构 m o d e l1 设计模型以页面为中心,按照这一模型实现的应用程序由一系列 j s p 页面构成。这种模型既易于理解又易于实现,编写代码十分容易。然而m o d e l 1 设计模式却有以下几处缺点: 应用的实现一般是基于过程的,一组j s p 页面实现一个业务流程,如果 要进行改动,必须在多个地方进行修改。这样非常不利于应用扩展和更 新。 在这种模型下,因为j a v a b e a n 的能力有限,而自定义标签又比较难以 编写,所以在j s p 页面里嵌入s c r i p t l e t 的做法对程序员更有诱惑力。但 让j a v a 代码和h t m l 混杂在j s p 页面里,会使整个程序看起来比较臃 肿而且不利于后期的维护。 由上一个缺点所引出的,这种架构不利于网页设计人员和后台业务逻辑 开发人员之间的劳动分工:网页设计人员既要参与页面的开发,又要参 与部分业务逻辑编码。 由于应用不是建立在模块上的,业务逻辑和表示逻辑混合在j s p 页面中 6 第二章m v c 和设计模犁结构分析 没有进行抽象和分离。所以非常不利于应用系统业务的重用和改动。 2 1 2m o d ei2 开发模型 由于m o d e l1 开发模型的诸多缺点,m o d e l1 并不能有效地应用于大型的 w e b 应用开发中。伴随着j s p 和s e r v l e t 技术的日臻成熟,大型w e b 应用开发最 常用的是m o d e l2 1 8 1 开发模型。 w e b 服务器 数据库 图2 3m o d e l2 模式体系结构 m o d e l2 的体系结构如图2 3 所示,它解决了m o d e ll 中许多固有的问题。 在此模式中,中心s e r v l e t 成为控制器( c o n t r o l l e r ) ,负责接收应用的所有请求, 并处理这些请求,调用模型( m o d e l ) ,为视图( v i e w ) 准备任何需要的数据, 并将数据转发给j s p ,j s p 响应w e b 客户端( 浏览器) 。m o d e l2 最通用的叫法 是m v c ,其实质是j s p + s e r v l e t + j a v a b e a n 模式,它是一种联合使用j s p 与s e r v l e t 来提供动态内容服务的方法,使用它来分配视图j s p 的显示页面,同时调用模 型的j a v a b e a n 来控制业务逻辑,从而达到了业务逻辑与表现逻辑的分离。相对 于m o d e l1 ,基于m v c 的应用程序具有以下几个优点: 开发速度快; 易于测试; 易于维护; 易于扩展。 视图( v i e w ) 、模型( m o d e l ) 及控制器( c o n t r o l l e r ) 之间的关系如图2 4 所示。 7 第二章m v c 和设计模型结构分析 图2 4 m v c 工作流程图 目前,比较流行的m v c 框架的实现主要有:s t r u t s 、t a p e s t r y 、j s f 、s p r i n g 、 w e b w o r l ( 2 等。 t a p e s t r y l 9 1 是一个开源的基于s e r v l e t 的应用程序框架,它使用组件对象模型 来创建动态的,交互的w e b 应用。在中到大型项目中,t a p e s t r y 的表现可以说是 比较突出( 也可以只把它应用到单个页面上) ,在这些项目中,通过简单地创 建新的组件起到杠杆作用,而且利用t a p e s t r y 开发的应用很容易维护和升级。 t a p e s t r y 支持本地化,其错误报告也很详细。t a p e s t r y 主要利用j a v a b e a n 和x m l 技术进行开发。t a p e s t r y 在应用中的不足之处主要表现为: 书签不强,依然存在一些不合适的u r l 。 由于页面类被抽象以及具体的类被简化,使得测试比较困难。 文档太概念,不利于编程。 j s f ( j a v a s e r v e rf a c e s ) 1 0 , l l 】是一种用于构建w e b 应用程序的标准j a v a 框 架。它提供了一种以组件为中心来开发j a v a w e b 用户界面的方法,从而简化了 8 第二章m v c 和设计模型结构分析 开发,也就是利用j s f 开发可以简单到只需将用户界面( u i ) 组件拖放到页面上。 j s f 的主要优势之一就是它既是j a v aw e b 用户界面标准又是严格遵循模 型视图一控制器( m v c ) 设计模式的框架。然而在实际的开发应用中,j s f 也有 许多不足: j s f 为w e b 开发提供的组件有限,并且自定义一个组件又不容易。 灵活性不好,并且性能不高。 很多工具目前无法完美支持基于j s f 的程序开发,导致了j s f 的用户比 较少,反过来,应用范围不广,使得相关的资源不是很多。 s p r i n g 是一个开源框架,它由r o dj o h n s o n 创建。它是为了解决企业应用开 发的复杂性而创建的。s p r i n g 使用基本的j a v a b e a n 来完成以前只可能由e j b 完 成的事情,并且s p r i n g 的用途不仅仅限于服务器端的开发。s p r i n gf r a m e w o r k 提 供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得 繁杂混乱的大量的属性文件和帮助类。一般情况下s p r i n g 都是作为中间层应用 的,比如下面将要详细研究的s t r u t s 和作为中间层的s p r i n g 相结合,将会使得 w e b 应用程序的开发更加有效。 s t r u t s 是a p a c h e 软件基金会( a s f ) 赞助的一个开源项目。它最初是j a k a r t a 项目中的一个子项目,目的是改进和提高j s p 、s e r v l e t 、标签库以及面向对象的 技术水准,该项目在2 0 0 4 年3 月成为a s f 的项级项目。它通过采用j a v as e r v l e t j s p 技术,实现了基于j a v ae ew e b 应用的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 经典设计模式中的一个经典产品。 s t r u t s 是一组相互协作的类、s e r v l e t 和j s p 标记,它们组成一个可重用的 m v c 设计。这个定义表示s t r u t s 是一个框架,而不是一个库,但s t r u t s 也包 含了丰富的标记库和独立于该框架工作的实用程序类。s t r u t s 的目的是为了减少 在运用m v c 设计模型来开发w e b 应用的时间。 就这几种框架技术来说,s t r u t s 框架诞生的比较早,应用也比较广泛,也是 本论文的研究重点。在下面一节中,将要着重分析s t r u t s 设计模型的体系结构。 9 第二章m v c 和设计模型结构分析 第二节s t r u t s 的基本组件 2 2 1s t r u t s 的工作流程 s t r u t s 实现m v c 机制的设计模式( 如图2 5 所示) 中,m ( m o d e l ,模型) 由j a v a b e a n 组件构成,任务是实现业务逻辑,v ( v i e w ,视图) 由一组j s p 文 件以及s t r u t s 标签组成,任务是实现表现逻辑,而c ( c o n t r o l l e r ,控制) 则是通 过a c t i o n s e r v l e t 来实现。 图2 5s t r u t s 实现m v c 对于采用s t r u t s 框架的w e b 应用,在w e b 应用启动时就会加载并初始化 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 从s t m t s c o n _ f i g x m l 文件中读取配置信息,把它们存 放到各种配置对象中。当a c t i o n s e r v l e t 接收到一个客户请求时,将执行如下流 程( 工作流程图如图2 6 所示) : ( 1 ) 检索和用户请求匹配的a c t i o n m a p p i n g 实例,如果不存在,就返回用 户请求路径无效的信息。 ( 2 ) 如果a c t i o n f o r m 实例不存在,就创建一个a c t i o n f o r m 对象,把客户 提交的表单数据保存到a c t i o n f o r m 对象中。 ( 3 ) 根据配置信息决定是否需要表单验证。如果需要验证,就调用 a c t i o n f o r m 的v a l i d a t e ( ) 方法。 1 0 第二章m v c 和设计模型结构分析 图2 6s t r u t s 的工作流程图 ( 4 ) 如果a c t i o n f o r m 的v a l i d a t e ( ) 方法返回n u l l 或返回一个不包含 a c t i o n m e s s a g e 的a c t i o n e r r o r s 对象,就表示表单验证成功。 ( 5 ) 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 实例包含的映射信息决定将请求转 第二章m v c 和设计模型结构分析 发给哪个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 ( ) 方法。 ( 6 ) a c t i o n 的e x e c u t e o 方法返回一个a c t i o n f o r w a r d 对象,a c t i o n s e r v l e t 再把客户请求转发给a c t i o n f o r w a r d 对象指向的j s p 组件。 ( 7 ) a c t i o n f o r w a r d 对象指向的j s p 组件生成动态网页,返回给客户端。 2 2 2j s p 标签库 s t r u t s 打包了一些j s p 标签库,j s p 标签库可看成是一套产生基于x m l 脚 本的方法,它经由j a v a b e a n s 来支持,可以帮助在j s p 中进行视图逻辑编程。标 签库使得j s p 编写者能使用类似h t m l 的标签来替代由j a v a 类定义的功能,而 且非常简单和可以重用的代码构造。比较常用的库有以下几种: h t m l 用于产生和s t r u t sa p i 交互的h t m l 表单; b e a n 用于j s p 中j a v a b e a n 对象,比如获取b e a n 的值; l o g i c 用来在j s p 中实现简单条件逻辑; n e s t e d 用来简化对h t m l 、b e a n 、l o g i c 标签中嵌套对象任意层的访问。 j s p 标签库的优点可以简要为如下几个方面: 易于安装在多个项目上; 可以对j s p 进行扩展; 容易维护; 快速的开发时间。 2 2 3 插件 s t r u t s 本身提供了强大的插件【1 2 1 功能,这是s t r u t s 的一个优势。通过s t r u t s 的插件,我们可以扩展s t r u t s 的功能,这一点在后面对s t r u t s 的具体研究中会涉 及到。 目前,s t r u t s 提供了两个重要的插件: 第一个是t i l e s 插件。s t r u t s 打包了t i l e s 框架。这一框架为创建w e b 页面提 供了一种模板机制,它能有效并且方便地将网页的布局和内容分离。它允许可 以先创建模板,然后在运行时动态地将需要的内容插入到模板中。t i l e s 框架建 立的基础是j s p 的i n c l u d e 指令,但是它提供了比j s p 的i n c l u d e 指令更强大的 1 2 第二章m v c 和设计模型结构分析 功能。与构建核心s t r u t s 的设计原则相似,t i l e s 也提供了很好的视图代码复用 性,可以说,采用t i l e s 模板机制,大大提高了代码的可重用性和可维护性。 第二个是v a l i d a t o r 插件。同t i l e s 类似,s t r u t s 也打包了j a k a r t ac o m m o n s v a l i d a t o r 框架,主要作用是数据验证。v a l i d a t o r 框架同样丰富,用来在服务器 端同客户浏览器端的数据验证。每一个验证都是在外部常用的x m l 配置文件中 配置好的( v a l i d a t i o n x m l 和v a l i d a t o r r u l e s x m l 为验证配置和验证规则配置文件) , 以便数据的验证能比较容易地通过声明在删除或是添加,而不是在应用中进行 硬性编码。 t i l e s 插件和v a l i d a t o r 插件本来只是s t r u t s 的第三方扩展模块,随着s t r u t s 的发展,这两种插件已经成为了s t r u t s 的一部分。在获取s t r u t s 的时候,t i l e s 和v a l i d a t o r 像其他插件一样无需特别配置,它们和s t r u t s 已经紧密集成在一起 了。 2 2 4s t r u t s 基本组件包 整个s t r u t s 大约有1 5 个包,近2 0 0 个类组成,而且数量还在不断的增多, 下面是s t r u t sa p i 包中几个基本的组件【1 3 】: o r g a p a c h e s t r u t s a c t i o n 基本上,控制整个s t r u t sf r a m e w o r k 的运行的核 心类、组件都在这个包中,比如控制器a c t i o n s e r v l e t 以及a c t i o n 、 a c t i o n f o r m 、a c t i o n m a p p i n g 、d y n a a c t i o n f o r m 等等; o r g a p a c h e s t r u t s a c t i o n s 这个包是主要作用是提供客户的h t t p 请求和业 务逻辑处理之间的特定适配器转换功能; o r g a p a c h e s t r u t s c o n f i g 提供对配置文件s t r u t s - c o n f i g x m l 元素的映射; o r g a p a c h e s t r u t s u t i ls t r u t s 为了更好支持w e ba p p l i c a t i o n 的应用,提供 了一个些常用服务的支持,比如c o n n e c t i o np o o l 和m e s s a g es o u r c e : o r g a p a c h e s t r u t s t a g l i b 这不是一个包,而是一个客户标签类的集合,包 括b e a nt a g s ,h t m lt a g s ,l o g i ct a g s ,n e s t e dt a g s ,t e m p l a t et a g s 这几个用于构建用户界面的标签类; o r g a p a c h e s t r u t s v a l i d a t o r 用于动态的配置f o r m 表单的验证。 这几个基本组件包的关系如图2 7 所示,其中a c t i o n 是整个s t r u t s 的核心。 1 3 第二章m v c 和设计模型结构分析 图2 7s t r u t s 组件包之间的关系 2 2 5s t r u t s 的优点以及缺点分析 s t r u t s 作为实现m v c 设计模式的一个经典产品,为开发者提供了一个统一 的标准框架。通过使用s t r u t s 作为基础,开发者能够更专注于应用程序的业务逻 辑的实现,从而使业务实现代码更加高效。同时其框架的创建也是为了使开发 者在构建基于j a v as e r v l e t 和j a v a s e r v e rp a g e s ( j s p ) 技术的w e b 应用时更加容 易。由此可见,s t r u t s 在开发者进行w e b 应用程序的开发过程中的作用是非常大 的,提高了开发效率。综合在项目开发中的经验和感受,s t r u t s 的优点具体可以 表现为以下几个方面: s t r u t s 作为一个a p a c h e 项目,和其他诸多a p a c h e 项目一样,如t o m c a t 、 t u r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026医院育婴师面试题及答案
- 2026应聘文秘岗面试题及答案
- 供应商付款事宜催办函5篇
- 2026最终战略面试题及答案
- 环保行动日:携手保护地球家园小学主题班会课件
- 商洽新供应商准入审核标准通知函8篇范文
- 2026湖南娄底市新化县部分事业单位面向社会公开招聘工作人员42人考试备考试题及答案详解
- 2026内蒙古兴安职业技术大学招聘(高校人员总量控制数)30人考试备考试题及答案详解
- 2026年阜阳阜南国控医养中心公开招聘工作人员笔试模拟试题及答案详解
- 2026重庆市永川区统计局公益性岗位招聘2人考试备考试题及答案详解
- 2026年西安市总工会建强实业集团有限公司招聘(26人)笔试备考试题及答案详解
- 2026年完整版临床三基考试试题及答案
- 福建省粮油食品进出口集团有限公司及其权属企业招聘笔试题库2026
- 2026年技术转移经纪人人才培养与职业资质认定知识考核
- (2026版)建筑施工特种作业人员管理规定课件
- 检验机构轮岗工作制度
- GB/T 13320-2025钢质模锻件金相组织评级图及评定方法
- 市政照明养护工程施工方案
- 2025年网络信息安全工程师年度工作总结与2026年计划
- 幕墙工程人力资源计划模板
- 《化工企业可燃液体常压储罐区安全管理规范》解读课件
评论
0/150
提交评论