




已阅读5页,还剩49页未读, 继续免费阅读
(通信与信息系统专业论文)基于mvc架构的管理信息系统的优化设计及实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北电力大学硕士学位论文摘要 摘要 为了有效地提高w e b 应用程序的可重用性、可维护性和可扩展性,在目前基于 j 2 e e 架构开发w e b 应用的基础上,基于m v c ( m o d e l v i e w - - c o n t r o l l e f ,模型 视图一控制器) 架构来构建w e b 应用系统是一种较好的w e b 应用实现方案。 本文论述了基于m v c 结构的开发平台和采用j 2 e e 中的j s p ,s e r v l e t ,j a v a b e a n 以及j d b c 技术来构建该平台的基础组件框架。并介绍了一个基于m v c 模式的s t r u t s 软件框架,讨论了s t r u t s 是如何实现m v c 模式以及s t r u t s 的各组件是如何协同工 作的,并基于该框架对保定电力公司综自远动管理信息系统进行优化和改进,同时 针对该系统开发出了j s p 自定义标签库和数据库连接池。 关键词:m v c ,s t r u t s 框架,j s p 自定义标签,数据库连接池 a b s t r a e t t o i m p r o v et h er e u s e ,m a i n t e n a n c ea n de x p a n s i b i l i t yo ft h ep r o g r a mo fw e b a p p l i c a t i o n s ,an e ws c h e m eu s i n gj 2 e et e c h n o l o g yt od e v e l o pw e ba p p l i c a t i o n si s p r e s e n t e da c c o r d i n gt ot h em v c ( m o d e l - v i e w c o n t r o l l e r ) a r c h i t e c t u r e t h ep a p e ri n t r o d u c e st h ep l a t f o r mw h i c hi sd e v e l o p e dw i t ht h et e c h n o l o g i e so fj s p , s e r v l e t ,j a v a b e a na n dj d b ci ns u n sj 2 e ea r c h i t e c t u r eb a s e do nt h em v c a r c h i t e c t u r e t h e nt h i sp a p e rp u t st h ef o c u so nt h er e s e a r c ho ft h es t r u t sf r a m e w o r kb a s e do nt h e m v ca r c h i t e c t u r e ,a n di n t r o d u c e st h a th o wt h es t r u t sf r a m e w o r ki m p l e m e n t sm v c a r c h i t e c t u r ea n dh o wt h ee a c hc o m p o n e n ti ns t r u t sf r a m e w o r kw o r k st o g e t h e r t h e nw e i m p r o v ei n t e g r a t e da u t o m a t i o n & r e m o t em i si nb a o d i n gp o w e rs u p p l yc o m p a n y b a s e do ns t r u t sf r a m e w o r ka n dd e s i g nj s pt a gl i b r a r y 、c o n n e c t i o np o o lf o rt h i ss y s t e m z o uw e n q i ( c o m m u n i c a t i o na n di n f o r m a t i o ns y s t e m ) d i r e c t e db y p r o fq iy u l i n k e yw o r d s : m v c ,s t r u t sf r a m e w o r k ,j s pt a gl i b r a r y ,c o n n e c t i o np o o l 声明 本人郑重声明:此处所提交的硕士学位论文基于m v c 架构的管理信息系统 的优化设计及实现,是本人在华北电力大学攻读硕士学位期间,在导师指导下 进行的研究工作和取得的研究成果。据本人所知,除了文中特别加以标注和致谢 之处外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得华 北电力大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志 对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 学位论文作者签名: 叠重毒 日期:a 6 。2 n 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有 权保管、并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩 印或其它复制手段复制并保存学位论文;学校可允许学位论文被查阅或借阅; 学校可以学术交流为目的,复制赠送和交换学位论文:同意学校可以用不同 方式在不同媒体上发表、传播学位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定1 作者签名导师签名: 烈子献 华北电力大学硕士学位论文 1 1 课题的研究背景“蚰 第一章引言 当今时代信息技术飞速发展,人们已经处于数字化的生存空间之中。i n t e r a e t 构造了无限的信息资源,它的普遍使用己经从根本上改变了人们的生活方式和工作 方式,也改变了企业的经营方式和服务方式。 近年来,随着网络技术的迅速发展和j 2 e e 平台的广泛应用,基于b s 的多层 w e b 体系结构逐渐发展成熟起来,多层w e b 应用的开发己成为主流。但是,即使利 用最先进的软件平台 2 e e ,开发这样的应用仍然是个难题。在多层w e b 体系结构的 设计中,普遍存在着程序可重用程度低、维护工作繁琐、应变能力较弱等不足。同 时,多层w e b 应用软件需要面对复杂的网络环境、多样化的用户需求、灵活的业务 模式、复杂的业务流程、众多的组织机构及层次、角色分工等问题,在业务和技术 上也是复杂多变的。因此,在基于组件的j 2 e e 平台充分内置的情况下,如何组织 应用程序以实现简单高效的应用程序升级、维护和扩展,以及如何让不懂程序代码 的人员避开程序数据,成为我们首先要解决的问题。而且,我们还要充分考虑到多 层结构的特殊性:各层之间需要密切配合才能完成最终功能,同时又需要在实际开 发中尽可能地使各层的开发相对独立,减少各层之间的耦合程度,避免开发人员相 互制约。 m v c 源于传统的面向对象语言s m a l i t a l k ,是个经典的设计模式。它是设 计交互式应用时广泛采用的一种设计模式,也是j 2 e e 推荐的在开发w e b 应用时使 用的方法。利用m v c 设计模式开发w e b 应用,可以将表现逻辑和业务逻辑分离,构 建可复用的软件系统框架,同时简化软件开发,提高软件性能和可维护性,达到提 高软件质量的目的。 s t r u t s 是一个基于 2 e f 平台以及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 s ( j s p ) 、s e r v l e t 等标准技术, 对l d v c 设计模式提供了相应的实现组件。项目的创立者希望通过该项目能有助于开 发者利用j s p 和s e r v l e t 的优点更加快速、容易地建立可扩展的多层w e b 应用。 s t r u t s 规定了应用的体系结构,为应用系统提供了一个良好的软件构架,解决了由 于应用的复杂性而在软件开发过程中所带来的各种问题,并对于实现在应用系统建 立初期所制定的软件功能、开发投入、开发周期、项目的组织和管理上的目标,都 有极大的帮助。它的目标是要全面减轻构建多层w e b 应用时所带来的负担,提供可 复用的框架。 华北电力大学硕士学位论文 在s t r u t s 中,视图部分通常基于j s p 和自定义标签技术来实现。j s p 有力地推 动了j a v a 在w e b 开发中的应用。同时,在j s p 标签库的帮助下,j s p 为w e b 和j 2 e e 应用中的表现层开发提供了强大的工具。 1 ,2 课题的研究现状“1 如今,网络已融入人们的生活,各种w e b 应用系统也应运而生,然而随着用户 需求的不断变化和市场竞争的日益激烈,这些w e b 应用系统必须不断地改进其内容 和形式,而解决该问题的关键是选择正确的软件系统体系结构。w e b 应用系统多采 用基于b s 的三层或多层框架结构,就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 ) 模式正是将系 统划分为模型层、视图层、控制层,因此,m v c 模式适应了日益复杂的w e b 应用系 统的设计需求。采用m v c 模式构建w e b 应用系统的体系结构,能够有效地解决在w e b 应用系统开发过程中由于系统结构的复杂程度较高而带来的诸多关键性问题,如代 码之间的耦合问题,代码的易维护性问题,组件的可重用性问题,不同技能的开发 人员如何分工的问题等等。 j 2 e e 是一种利用j a v a2 平台来简化企业解决方案的开发、部署和管理相关问 题的体系结构,提供了一个企业级的计算模型和运行环境,用于开发和部署多层体 系的应用。j g e e 提供的多层分布式应用模型、组件重用、一致化的安全模型以及灵 活的事件控制,加快了应用程序的设计和开发,可以容易、快速地建立融合i n t e r n e t 技术尤其是w e b 技术的n 层( n - t i e r s ) 结构的分布式企业应用。基于j 2 e e 技术的b s 结构具有可维护性好、可扩展性好、安全性好等优点,较好地解决了c s 结构所固 有的可维护性差、可扩展性差、安全性差、部署麻烦等弊端。 最近几年,m v c 模式被引入到s u n 公司的j 2 e e 平台。基于m v c 模式的j 2 e e 应 用开发,在实际应用中,受到越来越多的欢迎。m v c 模式利用控制器来分离模型和 视图,达到层问松散耦合的效果,从而提高了系统的灵活性、复用性和可维护性。 1 3 综自远动m i s 在供电企业中的应用 9 0 年代初,大部分供电企业采用传统的管理信息系统核心模式c s ( c i i e n t s e r v e r - - 客户端服务器) 模式组建管理信息系统网,适应了当时的需求, 在电力企业的管理中曾经起到了积极的作用。随着电力市场的发展壮大,这种模式 的局限性逐步显露出来,突出表现为c s 模式系统不易集成。迅速崛起的i n t e r n e t 相关技术已经爆炸式地在全世界流行起来,并且成为大多数准备开发网络化m i s 企 业的首选方案,其核心是b s ( b r o w s e r s e r v e r - - 浏览器服务器) 模式。由于采用 b s 模式组网具有开放性好,易于维护和升级等特点,b s 模式逐渐成为供电企业 , 华北电力大学硕士学位论文 组建m i s 网的首选模式。在我国电网调度“十五”规划中也明确指出要建立现代化 的调度m i s 系统,真正实现信息共享,专业管理和办公自动化。综合自动化远动信 息作为调度自动化的重要部分,并将在整个调度m i s 中占据举足轻重的地位。采用 m v c 技术研发的基于b s 结构的综合自动化远动管理信息系统在国内文献中未见相 同的报道。 1 4 课题设计内容 论文主要针对综合自动化远动管理信息系统在实际运行中出现的问题,给出了 个采用m v c 设计模式改进原有系统的解决方案,并设计实现了相关的j s p 自定义 标签库以及数据库连接池。 本文的主要内容是:首先从理论上对基于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 设计模式的框架,分析了其实现原理和特点,并剖析 了使用j a v a 代码和h t m l 语言混合在一起的开发模式存在的问题,最后针对此问题 提出了一个合理的解决方案,即使用基于m v c 模式的s t r u t s 框架对原有系统的软 件架构进行改进,利用j s p 自定义标签和j s p 技术实现表示层功能,利用j a v a b e a n 组件实现业务逻辑层功能,将表示层和业务层强行分离,使系统在结构上实现了松 耦合。同时,针对于系统运行过程中大量访问数据库的实际情况,在原有系统的基 础之上开发了数据库连接池,极大地提高了系统的稳定性和安全性。 华北电力大学硕士学位论文 第二章基于m v o 模式的j 2 e ew e b 应用开发和s t r u t s 框架 本章主要介绍了b s 体系结构和m v c 架构,并对m v c 的两种模式m o d e l1 和 m o d e l2 进行对比,分析和讨论了m o d e l2 的优势,同时介绍了一个基于m v cm o d e l 2 模式的软件框架一一s t r u t s ,其中m v c 模式的思想对于s t r u t s 框架发展和应用具有 指导意义。 2 1 基于b s 的w e b 应用体系结构 2 1 1 传统的三层体系结构 j s p 、a s p 、p h p 等技术的出现,使得开发动态交互式的w e b 应用得以实现,其 常用体系结构如下图2 1 所示。用户通过浏览器向服务器发送请求,w e b 服务器接 受用户端发送过来的请求,并对请求进行分析,如果请求是静态页面,那么就将所 请求的页面发送到客户端:如果请求的是动态页面,那么就执行此动态页面,并将 执行结果发送给客户端。 溉览器端 w e h 鞭蓓器数据库服务器 图2 - ib s 三层体系结构 w e b 服务器可以根据用户的请求动态更新页面上的信息,w e b 信息提供者可以 通过改变数据库中的数据向用户提供最新信息,而不需要逐个更改页面,用户可以 通过这些动态页面向数据库中输入信息,从而增强了用户和服务器的交互性。 2 1 2 新的四层体系结构 当前的许多w e b 应用都需要更复杂的表示和逻辑处理。采用三层体系结构,把 数据的生成和数据的表示两部分都集成在了动态页面中,这就使得动态页面变得非 常庞大,而且页面表示和逻辑处理混合在一块,给w e b 应用系统的开发和维护带来 了许多困难。于是出现了一种新的四层体系结构,如图2 - 2 所示,将逻辑处理和页 面表示相分离。其中w e b 服务器即动态页面所在层主要负责页面表示,逻辑处理层 主要负责逻辑处理。在此体系结构下,用户通过浏览器向服务器发送请求,w e b 服 务器接受用户端发送过来的请求,对请求进行分析,调用相应的应用服务,其中逻 辑处理程序可和数据库交互,并将逻辑处理结果返回给w e b 服务器,w e b 服务器再 4 兰i ! 皇垄奎堂堡主堂垡堡苎 将结果发送给客户浏览器。 m v c ( m o d e 卜v i e w - c o n t r o i l e r ) 模式的思想在理论上使新的四层体系结构实现 了逻辑处理和表示相分离,对w e b 的应用开发具有重要意义。 2 2m v c 模式 图2 - 2s s 四层体系结构 器 m o d e l v i e w c o n t r o l l e r ( m v c ) 开发模式可以分离数据访问和数据表现,让开 发人员可以开发一个伸缩性强、便于扩展的控制器,来维护整个流程。整个模式的 结构如图2 - 3 所示: 图2 - 3m v c 模型结构图 模式( m o d e l ) :即数据与业务逻辑层,封装的是数据源和所有对数据的操作。 业务逻辑用于表示对应用数据的处理,如客户、产品和订单信息。一般使用j a v a b e a n 和标签语言实现。 华北电力大学硕士学位论文 视匿q ( v i e w ) :即表示层,也称为用户接口元件,封装的是对数据源的一种显示, 一个模式可以用于多个视图。即如何将应用数据显示给用户,如位置、字体、和大 小,一般用j s p 页面实现。 控制器( c o m r o i l e r ) :即控制层,是用来响应用户输入的组件,封装7 # i - 界作用 于模型的操作。控制器将用户接口转化为模式的变化,并定义用户接口对这些事件 的响应方法。用户接口可包括多种协议的操作和请求处理,一般使用s e r v l e t 实现”1 。 m v c 能为我们的系统设计带来如下好处: ( 1 1 设计清晰,使界面设计同数据操作完全隔离开来,两者之间通过c o n t r o l l e r 来交互,三个部分可以各自独立进行开发,只需要知道其它部分所提供的接1 3 即可。 f 2 ) 有利于团队分工合作,独立开发,这意味着不同的专业人员可以在自己所 擅长的领域进行开发,例如熟悉界面的人员负责v i e w ,熟悉软件流程的人员负责 c o n t r o l l e r ,熟悉业务的人员负责m o d e l ,使得大家可以发挥所长。 ( 3 ) 将系统分解为三部分,不仅使开发变得相对简单,而且使得系统的测试及 维护更加便利,因为三部分之间的接口通常都是确定的,所以即使修改也只需在很 小的范围内进行。 2 ,3 基于m v c 模式的j 2 e ew e b 开发 2 3 1m o d ei1 和m o d e i2 m o d e l1 m o d e l2 是对采用j s p 技术构成w e b 应用的不同模型的描述。下面对 这个概念做一个简单的介绍。 l 、m o d e ll 图2 4 l o d e ll 结构 在使用j a v a 技术建立w e b 应用的实例中,由于j s p 技术的发展,这种便于掌握 华北电力大学硕士学位论文 和可实现快速开发的技术很快就成了创建w e b 应用的主要技术。j s p 页面中可以非 常容易地结合业务逻辑( j s p :j a v a b e a n ) 、服务器端处理过程( j s p :s c r i p l e t ) 和 h t m l ( ) ,在j s p 页面中同时实现显示、业务逻辑和流程控制,从而可以快速 地完成应用开发。现在很多的w e b 应用就是由一组j g p 页面构成的。这种以 s p 为 中心的开发模型我们可以称之为m o d e ll 。如图2 4 所示: 这种开发模式在进行快速和小规模的应用开发时,有着非常大的优势,但是从 工程化的角度考虑,它也有些不足之处: ( 1 ) 应用的实现一般是基于过程的,一组j s p 页面实现个业务流程,如果要 进行改动,必须在多个地方进行修改。这样非常不利于应用扩展和更新。 ( 2 ) 由于应用不是建立在模块上的,业务逻辑和表示逻辑混合在j s p 页面中, 没有进行抽象和分离,所以非常不利于应用系统业务的重用和改动。 为了解决m o d e ll 紧耦合、复用性差和维护成本高的问题,在开发大型的w e b 应用时必须采用不同的设计模式,这就是m o d e l2 。 2 、m o d e l2 m o d e l2 表示的是基于m v c 模式的框架。m v c 是m o d e l v i e w c o n t r o l l e r 的简 写。“m o d e l ”代表的是应用的业务逻辑( 通过j a v a b e a n ,g j b 组件实现) ,“v i e w ” 是应用的表示层( 由j s p 页面产生) ,“c o n t r o l l e r ”是提供应用的处理过程控制( 由 s e r v l e t 实现) ,通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组 件实现。这些组件可以进行交互和重用,从而弥补了m o d e l1 的不足。 在一个基于j a v a 技术的典型网络应用中,m o d e l2 中的各个部分与j a v a 中的 各种现有技术的对应如下图2 5 所示: 图2 5m o d e l2 结构 华北电力大学硕士学位论文 m o d e l2 具有组件化的优点从而更易于实现对大规模系统的开发和管理,但是 开发m v c 系统比简单的j s p 开发要复杂许多,它需要更多的时间学习和掌握。同时 新东西的引入会带来新的问题: ( 1 ) 在设计系统时必须基于m v c 组件的方式重新思考和设计应用结构。原来通 过建立一个简单的j s p 页面就能实现的应用现在变成了多个步骤的设计和实现过 程。 ( 2 ) 所有的页面和组件必须在m v c 框架中实现,所以必须进行附加的开发工作。 m v c 本身就是一个非常复杂的系统,所以采用m v c 实现w e b 应用时,最好选一 个现成的m v c 框架,在此之下进行开发,从而取得事半功倍的效果”1 。 3 、m v c 的应用开发框架 框架是对特定领域的软件体系结构的具体描述:是对一个应用软件系统的部分 或整体的可重用设计,由组抽象构件及构件实例间的相互作用方式组成:框架是 由开发人员定制的应用系统的骨架。m v c 框架将系统分为视图层、控制层、模型层 三个层次,并且定义了三个层次之间的耦合关系,因此,可以说m v c 框架属于分层 系统的体系结构。该体系结构包括对视图、控制以及模型三个系统构件的描述、构 件之间的交互、指导构件交互的模式,以及施加在模式上的约束。因此,采用m v c 框架,也就采用了分层系统的体系结构。 现在有很多可供使用的m v c 框架,其中s t r u t s 框架具有完整的文档并且相对 来讲比较简单,所以用它开发m v c 系统还是比较方便的。s t r u t s 是基于m o d e l2 之上的,它的底层机制就是m v c 。s t r u t s 采用的是开放式源代码,它是作为a p a c h e 软件基金的j a k a r t a 项目的一部分,旨在改进和提高j s p 、s e r v l e t 、标签库以及面 向对象的技术,整合了s e r v l e t 和j s p 的技术优势,为开发人员提供一个开发w e b 应用程序的框架。 2 3 2 基于m v c 模式的d 2 e e 应用 j z e e 模型提供了一个很好的企业应用框架及解决方案,但是多层企业应用框架 在提高了软件的重用性和降低了问题的复杂性的同时,也使得代码庞大,层与层之 问的控制关系复杂。而m v c 模式可以利用控制器将业务逻辑( 模型) 和 表示逻辑( 视图) 分离,使应用的各层之间达到一种松耦合的效果,所以,人们将 m v c 模式应用于j 2 e e 应用开发。 在j 2 e e 企业应用开发中采用m v c 模式,能使软件开发有章可循,结构清晰, 缩短开发周期:同时,它能有效地改善软件系统的性能,大大提高软件的可维护性 与可扩展性。在本设计当中,我们采用了基于m v c 模式的s t r u t s 框架来改进w e b r 华北电力大学硕士学位论文 系统。 基于m v c 模式,j 2 e e 应用模型如图2 6 所示 w e b 服务器应用服务器 、 , e j b 容器 数 库 浏 南百 、 :f 模型 览 器 一一 一一 图2 - 6 基于m v c 的j 2 e e 应用模型 基于j 2 e e 平台可以快速地融合i n t e r n e t 技术尤其是w e b 技术的n 层( n - t i e r s ) 结构的分布式企业应用,所以现在越来越多的企业应用己转向这一领域。在w e b 应 用开发中,合理地综合利用各项技术,形成一个稳定的架构十分重要。在实现w e b 应用时m v c 模型被广泛采用,它提倡将模型和视图分离,由控制器控制流程,使得 应用程序更容易维护,如果选择现成的m v c 框架进行开发可以取得事半功倍的效果。 由于s t r u t s 架构拥有完整的文档,目前已成为w e b 应用开发的流行架构方案。 2 4s t r u t s 简介 图2 7s t r u t s 框架简介 s t r u t s 框架具有组件的模块化、灵活性和重用性的优点,同时简化了基于m v c 的w e b 应用程序的开发,如图2 7 所示。 9 王 曲 一 州 蛳竺啦 一 画一 一、,薹 呲面叫 i 一 = 岫 = 一 卞 华北电力大学硕士学位论文 2 4 1s tr u t s 体系结构 首先让我们从m v c 角度观察s t r u t s 框架中的组件。如图2 8 ”3 所示。 图2 - 8s t r u t s 中各组件结构 框架中有三个部分:模型、视图和控制器。 模型 在s t r u t s 框架中,模型分为两个部分: ( 1 ) 系统的内部状态; ( 2 ) 可以改变状态的操作( 事务逻辑) 。 内部状态通常由一组a c t i o n f o r mj a v a b e a n 表示。根据设计或应用程序复杂 度的不同,这些b e a n 可以是自包含的并具有持续的状态,或只在需要时才获得数 据( 从某个数据库) 。 大型应用程序通常在方法内部封装事务逻辑( 操作) ,这些方法可以被拥有状 态信息的b e a n 调用。比如综自系统中通知管理模块中的p e r s o n b e a n ,它拥有用户 的信息,而且还有s a v e 0 方法用来保存用户的相关信息,并发送到数据库进行存储。 小型程序中,操作可能会被内嵌在a c t i o n 类中,它是s t r u t s 框架中控制器角 色的一部分,当逻辑简单时这个方法很适合。 华北电力大学硕士学位论文 视图 由j s p 建立,s t r u t s 包含扩展自定义标签库,可以简化创建完全国际化用户界 面的过程。 控制器 s t r u t s 中,基本的控制器组件是a c t i o n s e r v l e t 类中的实例s e r v l e t ,实际使 用的s e r v l e t 在配置文件中由一组映射( a c t i o n m a p p i n g 类) 进行定义。 2 ,5s t r u t s 的各组件 表2 1s t r u t s 框架中所使用的组件 a c t i o n s e r v l e t 控制器 a c t i o n包含事务逻辑 a c ti o n f o r m显示模块数据 a c 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 e r r o r 用来存储和回收错误 s t r u t s 标签库可以减轻开发显示层的工作 下面我们看看它们各自在框架中所发挥的作用和担负的责任。 2 5 1s 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 组件结合在一起的控制文件,其默认位置 为w e b i n f s t r u t s c o n f i g x m l 。配置文件可以定义: 全局转发 a c t i o n m a p p i n g 类( 帮助控制器将请求映射到操作) a c t i o n f o r mb e a n ( 显示模块数据) ( 1 ) 配置全局转发 全局转发用来在j s p 页面之间创建逻辑名称映射。转发都可以通过对调用操作 映射的实例来获得,例如: a c t i o n m a p p i n g i n s t a c e f i n d f o r w a r d ( “l o g i c a l n a m e ”) : f o r w a r d n a m e :“b o o k c r e a t e d “p a t h = “b o o k v i e w 、s p b ( 2 ) 配置a c t i o n m a p p i n g l f 华北电力大学硕士学位论文 a c t i o n m a p p i n g 对象帮助进行框架内部的流程控制,它们可将请求映射到 a c t i o n 类,并且将a c t i o n 类与a c t i o n f o r mb e a n 联系起来。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 类使用e x e c u t e 0 方法实现特定应用程序代码,并返回一个a c t i o n f o r w a r d 对象,其中包括响应转发 的目标资源名称。例如: a c t i o n ) 表2 2a c t i o n m a p p i n g 对象的属性描述 属性 描述 p a t h a c t i o n 类的相对路径 n a m e 与本操作关联的a c t i o nb e a n 的名称 t y p e连接到本映射的a c t i o n 类的全称 s c o p e a e t i o n f o r mb e a n 的作用域( 请求或会话) a t t r i b u t e作用域名称 c l a s s n a m e a c t i o n m a p p i n g 对象的类的完全限定名默认的类 是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 1 n p u 输入表单的路径,指向b e a n 发生输入错误时必须 返回的页面 v a l i d a t e 若设置为t r u e ,则在调用a c t i o n 对象的 e x e c u t e0 方法前,a c t i o n s e r v l e t 将调用 a c t i o n f o r mb e a n 的v a l i d a t e0 方法来进行输入 检查 ( 3 ) 配置a c t i o n f o r mb e a n a c t i o n s e r v l e t 使用a c t i o n f o r m 来保存请求的参数,这些b e a n 的属性名称与 h t t p 请求参数中的名称相对应,控制器将请求参数传递到a c t i o n f o r mb e a n 的实例, 然后将这个实例传送到a c t i o n 类。例如: 华北电力大学硕士学位论文 f o r m - b e a nn a m e = “b o o k f o r m “t y p e = “b o o k f o r m “b 表2 3a c t i o n f o r mb e a n 的属性描述 属性描述 c l a s s n a m ea c t i o n f o r mb e a 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 f o r m b e a n n a m e 表单b e a n 在相关作用域的名称,这个属性用来 将b e a n 与a c t i o n m a p p i n g 进行关联 2 5 2a c t jo n s e r v i e t 类 框架中的控制器组件是由o r b a p a c h e s t r u t s a c t i o n a e 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 控制器组件的基本功能是: 1 截获用户的h t t p 请求。 2 把这个请求映射到相应的a c t i o n 类,如果这是此类收到的第一个请求,则 对其初始化并缓存。 3 创建或发现一个a c t i o n f o r mb e a n 实例( 看配置文件是否定义) ,然后将请 求过程移植到b e a n 。 4 调用a c t i o n 实例的e x e c u t e ( ) 方法并将a c t i o n f o r m b e a n 、a c t i o n m a p p i n g 对象,r e q u e s t 和r e s p o n s e 对象传给它。 如:p u b l i ca c t i o n f o r w o 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 ti o n g o r mf o r m , 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 ) 5 e x e c u t e0 方法返回一个a c t i o n f o r w o r d 对象,此对象连接到相应的j s p 页 面。 a c t i o n s e r v l e t 的配置: 我们需要在w e b x m l 中声明a c t i o n s e r v l e t ,并且将它配置成启动时进行加载。 大多数情况下,标准的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 类进行实例化,然后 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 类会被暂时存储以各再用。 华北电力大学硕士学位论文 2 5 3a c t io n m a p p in g 类 a c t i o n m a p p i n g 类能将特定的请求映射到特定的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 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 类的e x e c u t eo 方法,a c t i o n 将使用a c t i o n m a p p i n g 的f i n d f o r w a r d 0 方法,此方法返回一个指定 名称的a c t i o n f o r w a r d ,这样a c t i o n 就完成了本地转发。例如: p u b l i ca c t i o n f o r w a r df i n d f o r w a r d ( s t r i n gn a m e ) 可在映射中动态添加a c t i o n f o r w a r d : p u b l icv o i da d d f o r w a r d ( a c t i o n f o r w a r df o r w a r d ) 可返回与映射关联的表单b e a n : p u b l i c s t r i n gg e t n a m e0 可返回映射的属性域( 会话或请求) p u b li cs t r i n gg e t s c o p e0 2 5 4a c tio n 类 a c t i o n 类真正实现应用程序的事务逻辑,它们负责处理请求。在收到请求后 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 的一个实例; 调用a c t i o n 的e x e c u t e o 方法; 如果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 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 ,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 e r v l e t 的环境和被覆盖的e x e c u t e o 方法, a c t i o n s e r v l e t 也会传送s e r v l e t r e q u e s t 对象或h t t p s e r v l e t r e q u e s t 对象。 所有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 类,并且覆盖类中 定义的e x e c u t eo 方法。 a c t i o n 类必须以“线程安全”的方式进行编程,因为控制器会令多个同时发生 的请求共享同一个实例,相应的,在设计a c t i o n 类时就需要注意以下几点: 不能使用实例或静态变量存储特定请求的状态信息,它们会在同一个操作 华北电力大学硕士学位论文 中共享跨越请求的全局资源; 如果要访问的资源( 如j a v a b e a n 和会话变量) 在并行访问时需要进行保 护,那么访问就要进行同步; a c t i o n 类的方法除了e x e c u t e 0 方法外,还有以下方法: ( 1 ) 可以获得或设置与请求相关联的区域: p u b l i cl o c a l eg e t l o c a l 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 ) p u b l i ev o i ds e t l o c a l 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 ,l o c a l el o c a l e ) ( 2 ) 为应用程序获得消息资源: p u b li cm e s s a g e r e s o u r c e sg e t r e s o u r c e s0 ( 3 ) 检查用户是否点击表单上的“取消”键,如果是,将返回t r u e : p u b l i cb o o l e a ni s c a n c e l l e d ( h t t p s e r v l e t r e q u e s tr e q u e s t ) ( 4 ) 当应用程序发生错误时,a c t i o n 类能够使用下面方法存储错误信息: p u b l i c v o i d s a v e e r r o r s ( h t t p s e r v l e t r e q u e s tr e q u e s t ,a c t i o n e r r o r s e r r o r s ) 2 5 5a c tio n f o r m 类 框架默认用户在应用程序中为每个表单都创建了一个a c t i o n f o r mb e a n ,对于 每个在s t r u t s c o n f i g x m l 文件中定义的b e a n ,框架在调用a c t i o n 类的e x e c u t e 0 方法之前会进行以下操作: 在相联系的关键字下,a c t i o n f o r m 检查用于b e a n 实例的用户会话,如果 在会话中没有可用的b e a n ,它就会自动创建一个新的b e a n 并添加到用户的会话中。 对于请求中每个与b e a n 属性名称对应的参数,a c t i o n 调用相应的设置方 法。 当a c t i o ne x e c u t e0 方法被调用时, a c t i o n f o r mb e a n 将数据传送给它, 参数值就可以立即使用了。 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 a c t i o n f o r m 类,程序开发人员 创建的b e a n 能够包含额外的属性,而且a c t i o n s e r v l e t 可以使用反射机制( 允许 从已加载的对象中回收信息) 访问它。 a c t i o n f o r m 类提供了另一种处理错误的手段,并提供了两个方法: p u b l i ca c t i o n e r r o r sv a l i d a t e ( a c t i o n m a p p i nm a p p i n g , 1 5 华北电力大学硕士学位论文 在实际应用时应该在自己的b e a n 里覆盖v a l i d a t e 0 方法,并在配置文件里设 置 元素的v a l i d a t e 为t r u e 。在a c t i o n s e r v l e t 调用a c t i o n 类前,它会调 用v a l i d a t e 0 ,如果返回的a c t i o n e r r o r s 不是n u l l ,则a c t i o n f o r m 会根据错误 关键字将a c t i o n e r r o r s 存储在请求属性列表中,然后a c t i o n s e r v l e t 将响应转发到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年OLED检测系统项目建议书
- 2025年汽车内外饰件合作协议书
- 抢修安全培训课件
- 2025年用户自行开发的专用集成电路(ASIC)项目建议书
- 抗菌药物的正确使用
- 抗美援朝胜利原因
- 2025年环境污染防治专用设备项目发展计划
- 2025年江苏省苏州市工业园区景城学校中考数学二模试卷(含简略答案)
- 2025-2026学年河北省承德市双滦实验中学高二(上)开学数学试卷(含答案)
- 教师考试压轴题及答案
- DB21-T 2854-2017二化性柞蚕种质量与检验
- GB/T 17913-2024粮油储藏磷化氢环流熏蒸装备
- 常用玻璃仪器操作规范课件
- 人教版一年级数学上册-教材分析
- 围墙拆除改造合同模板
- 考点巩固卷03中国地理(原卷版)
- 《青纱帐-甘蔗林》教案- 2023-2024学年高教版(2023)中职语文基础模块下册
- 中职英语1第一单元unit1
- 农作物植保员技能竞赛理论考试题库500题(含答案)
- TCRHA 063.1-2024 消毒供应质量管理及评价 第1部分:外包消毒供应业务
- 食品产业高质量发展发展目标
评论
0/150
提交评论