(计算机应用技术专业论文)基于struts框架的房地产开发项目管理系统的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于struts框架的房地产开发项目管理系统的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于struts框架的房地产开发项目管理系统的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于struts框架的房地产开发项目管理系统的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于struts框架的房地产开发项目管理系统的设计与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(计算机应用技术专业论文)基于struts框架的房地产开发项目管理系统的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要皋于s t r u t s 框架的房地产开发项目管理系统的设计j 实现 摘要 随着网络技术的迅速发展,构建基于b s 结构的w e b 应用系统已成为开发主流。 而开发一个较大的w e b 应用系统要求设计者能够提出合理的系统构架,减少开发及维 护系统所用的资源、提升工作效率。基于m v c 模式的s t r u t s 框架技术已得到广泛使 用,它的三层结构独立,符合面向对象的设计思想,层次之间建立了明确的通信机制, 并且每个层次都有其自身的技术扩展平台,提高了分布式应用系统中组件的重用能力 和事务控制的灵活性。 本文首先探讨了m v c 设计模式的三层结构的基本理论,介绍了s t r u t s 框架模型、 视图、控制器三个部分的特点,讨论了s t r u t s 框架的工作原理以及基于s t r u t s 框架开 发的优势并与其他m v c 框架进行了对比。在房地产开发项目管理系统的总体设计过 程中,以u m l 为工具并结合s t r u t s 框架的特点对系统进行设计建模,以降低整个系 统开发的难度。最后以进度管理模块为例详细叙述了如何充分利用s t r u t s 框架提供的 相关技术进行具体的设计与实现,说明了各个层次之间的联系与分工,并交待了系统 的测试与验证情况。 在开发过程中,通过应用s t r u t s 框架实现了表示、业务逻辑以及数据操作的分离, 为系统的开发和维护提供了很大的灵活性和方便的管理性。实践表明,应用这种框架 可以提高系统开发效率,同时满足系统可扩展性和可维护性的要求。 关键字:m v c 模式,u m l 建模,s t r u t s 框架,房地产开发项目管理 a b s t r a c t 基于s t r u t s 框架的房地产开发项目管理系统的设计与实现 a b s t r a c t w i t ht h e d e v e l o p m e n t o ft h e t e c h n o l o g i e s o f c o m p u t e rn e t w o r k ,w e b b a s e d a p p l i c a t i o n s w i t ht h e b r o w s e r s e r v e rm o d eb e c o m et h em a i n s t r e a mo ft h e d e v e l o p m e n t h o w e v e r , d e v e l o p i n gaw e ba p p l i c a t i o ns y s t e mi sa l w a y sal a r g ep r o j e c t ,s ot h e d e s i g n e r sm u s tb ea b l et op u tf o r w a r dap r o p e rs y s t e mf r a m e w o r k g o o df r a m e w o r kc a l l s a v et h er e s o u r c eu s e dt od e v e l o pa n dm a i n t a i nt h es y s t e m ,i n c r e s et h ee f f i c i e n c y d e s i g n e r s h a v ea c c e p t e da n dm a d eu s eo ft h es t r u t sf r a m e w o r kb a s e do nm v c ,i th a st h r e e i n d e p e n d e n tl a y e r s ,w h i c ha c c o r d sw i t h0 0i d e o l o g y , i ta l s os e t su pc o m m u n i c a t i o nw a y s a m o n gm ,v a n d c ,a tt h es a m e t i m e ,i tp r o v i d e sf l a to ft e c h n o l o g ye x t e n t ,a n di m p r o v e s c o m p o n e n tr e u s a b i l i t yi nd i s t r i b u t e da p p l i c a t i o ns y s t e ma n df l e x i b i l i t yo ft r a n s a c t i o n c o n t r 0 1 s o m eb a s i ct h e o r i e sa r ef i r s td i s c u s s e di nt h i si s s u e ,i n c l u d i n gt h et h r e el a y e r so fm v c m o d e la n ds t r u t sf r a m e w o r k i na d d i t i o n ,t h em e r i t sa n dd e m e r i t so fs t r u t sc o m p a r e dw i t h o t h e rm v cf r a m e w o r k sa r ea n a l y z e di nt h i ss e c t i o n t h es y s t e mu s e su m lb a s e do ns t r u t s f r a m e w o r ki np r e c e d i n gd e s i g n ,t h i sm a k e st h ed e v e l o p i n gw o r kb e c o m i n gm o r ee a s i e r t h i s i s s u et a k et h ep r o c e s sm a n a g e m e n tm o d l ea sae x a m p l et oe x p l a i nh o wt oi m p l e m e n tt h e s y s t e mw i t ht h et h r e el a y e r sa n dt e c h n o l o g i e sp r o v i d e db ys t r u t sf r a m e w o r ka n dt h e c o n n e c t i o na m o n gv i e w , m o d e la n dc o n t r o lm o d u l e s t h et e s tr e s u l t so ft h es y s t e ma l ea l s o g i v e n i nt h i si s s u ea tl a s t i nt h i sc a s e ,t h ed i s t i n c t i o nb e t w e e nd e s c r i p t i o nl o g i c ,b u s i n e s s l o g i ca n dd a t a o p e r a t i o n i sm a d ep o s s i b l ew i t h i nt h es t r u t sf r a m e w o r k ,w h i c hm e a l l sb e t t e rf l e x i b i l i t ya n d e a s i e rm a n a g e m e n ti nt h ee x p l o r a t i o no fa s y s t e m r e s u l t ss h o wt h a tt h i sf r a m e w o r k h e l p st o i n c r e a s ew o r k se 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 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 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 :m v c ,u m l ,s t r u t sf r a m e w o r k ,b u i l d i n gp r o j e c tm a n a g e m e n t h 声明尸i 凋 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在 本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发 表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学 历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均 已在论文中作了明确的说明。 研究生签名:刻基2 。口g 年7 月件日 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅 或上网公布本学位论文的部分或全部内容,可以向有关部门或机构送 交并授权其保存、借阅或上网公布本学位论文的部分或全部内容。对 于保密论文,按保密的有关规定和程序处理。 研究生签名:壹i 盘 2 0 08 年了月i 牛日 硕i :论文荩fs t r u t s 框架的房地产开发项u 管理系统的设计j 实现 1 绪论 工程项目管理是项目管理的一大类,是指项目管理者为了使项目取得成功( 实现 所要求的功能和质量、所规定的时限、所批准的费用预算) ,对工程项目用系统的观念、 理论和方法,进行有序、全面、科学、目的明确的管理,发挥计划职能、组织职能、 控制职能、协调职能和监督职能的作用l lj 。简单地说,工程项目管理就是为了达到项 目目标,对工程项目所进行的一系列的管理活动。房地产项目管理是比较典型的工程 项目管理。 在房地产等工程项目的建设过程中,大量的信息( 包括文件资料等) 不断产生, 并随着工程的进行而迅速增加,如何对其进行收集、存储、加工与分析,如何利用它 们为工程建设服务,为决策提供必要的依据,即怎样进行档案管理和信息管理将关系 到能否高效、高质、低耗、圆满地完成建设项引2 1 。 为了实现这个目的,工程建设项目越来越多地使用项目管理系统来辅助项目经理 及其他管理人员进行项目的管理工作。所谓项目管理系统就是以计算机、网络通信、 数据库作为技术支撑,对项目的整个生命周期中所产生的各种数据,及时、j 下确、高 效地进行管理,为项目所涉及到的各类人员提供必要的高质量的信息服务1 3 j 。 1 1 课题研究背景及意义 近几年来,我国的许多企业开始引进项目管理方法,进行业务流程的再造,建立 项目管理系统。国内许多大型企业的大型或者特人型项目在这方面投入很大,但能够 有效运行的并不多。比如,我国某大型建没项目投资近千万美元与国外某项目管理公 司合作开发了一个基于网络平台的建设项目管理系统,系统的功能是先进的,完备的, 但目前仅有约2 0 的单个功能获得使用,并没有在整体上提高项目管理水平。上述问 题之所以存在,一方面是凶为管理体制、组织行为方面的障碍;另一方面则源于软件 的盲目选型及软件本身的集成度不高【4 】。为此,需要通过f 舰的信息资源规划,建立 工程管理信息系统的信息资源管理基础标准,系统功能模型、数据模型和体系结构模 型,用以指导、控制和协调工程管理信息系统的数据库和应用软件丌发工作,使其既 能有效地为业主方面的业务层、管理层和决策层服务,又能有效地为施工方和监理方 的信息交换服务。 随着现代企业需求的不断变化,企业客户迫切需要一套能够通过协同作业,改善 信息的创建、分享与过程管理的工程项目管理软件,从而达到提高决策准确度、提高 运营效率、提高项目质量和提高用户获利能力的目标。为此,要求丌发一套具备跨平 台、开放性、安全性高等特点的现代工程项目管理系统,并将企业的传统业务整合成 i 绪论硕i j 论文 面向w e b 的应用f 4 1 。 1 2 工程项目管理系统的现状与分析 1 2 1 工程项目管理系统的发展 项目管理信息系统经历了从无剑有的发展,但总的来说还不是很成熟,只能说是 项n 管理软件。近些年来,商品化的项目管理软件大量地涌现出来,它们可以用于整 个项目管理过程的各项活动,帮助用户制定任务、管理资源、进行成本预算、跟踪项 目进度等,功能越来越强,并提供了便于操作的图形界面。目前市场上大约有上百种 项目管理软件工具。这些软件各具特色,各有所长。 供专业项目管理人士使用的企业级项目管理软件,功能强大,价格一般较高,如 a b t 公司的w o r kb e n c h 、p r i m a v e r a 公司的p 3 ,g o r e s 技术公司的a r t e m i s ,w e l c o m e 公司的o p e np l a n ,m i c r o s o f t 公司的p r o j e c t 等等。此外,p c 级的项目管理软件,可 应用于一些中小型项目管理,这类软件虽然功能很不齐全,但价格较便宜,如: s y m a n t e c 公司的t i m el i n e ,s c i t o r 公司的p r o j e c ts c h e d u l e r ,p r i m a v e r a 公司的s u r et r a k 竺1 3 】 寸o 1 2 2 工程项目管理系统的研究现状 随着我国项目管理的发展和计算机应用的普及,国内也自行开发或汉化了许多项 目管理软件,在对国外软件进行汉化的同时,国内还自行开发研制了多种项目管理软 件,在我国的项目管理工作中发挥了一定的作用。与国外的软件或汉化软件相比,国 内开发的软件一般在功能设置和运行机制上更加符合困内习惯做法和实际情况,比较 容易满足国内用户的管理需要。虽然国内项目管理软件数量不少,但是由于软件的开 发起步较晚,在用户界面、报告生成与输出、数据交换等方面与国外先进软件相比还 存在着一定的距离,影响了项目管理软件的进步推广应用,而且这些软件目前还不 可能用于国际项目1 3 1 。 随着项目管理的发展和计算机技术的进步,项目管理软件在功能和性能上也将得 到进一步的完善,在项n 管理中发挥越来越重要的作用。目前的发展趋势主要有:综 合性进一步加强,能够将进度、资源、费用、合同等进行综合的管理,为项目管理工 作提供更全面的支持。通过互联网,实现数据共享,进行异地管理和数据交换。软件 的用户自定义功能进一步加强,用,1 能够根据自身管理的需要,对软件的功能和运行 方式进行改进1 3j ,和其他软件的接口更加方便。 1 2 3 工程项目管理系统实现技术的选择 系统的设计分数据库和人机交互系统两个部分。系统的数据库平台和交互系统设 2 硕i :论义基于s t r u t s 框架的房地产开发项u 管理系统的设计j 实现 计工具在遵循前述的原则下结合信息技术的发展进行选择。 系统对数据库的要求是支持标准的s q l 语言,支持o d b c ( o p e nd a t ab a s e c o n n e c t i o n ) ,支持第三方开发工具,支持数据挖掘技术、数据仓库技术和联机分析处 理技术( o l a p ) 的关系型数据库p j 。当前主流的数据库管理平台都能满足这些功能, 如m ss q ls e r v e r 、m y s q l 、s y b a s e 、o r a c l e 、d b 2 等。 系统人机界面的实现技术有两种:b s 模式和c s 模式。b s 模式是实现这一方式 的理想模式。b s 模式实质是三层结构,把数据存储、数据逻辑和业务逻辑、表示逻 辑分成三层,分别为数据服务层、应用服务层和表示层。其中表示层用w | e b 浏览器来 实现。选用b s 模式还是c s 模式,应根据用户的实际来做选择。工程项目管理行业 有管理地域分散的特点,适用于b s 模式。同时,采用b s 结构,程序主要安装在服 务器端,员工只需要通过浏览器就可以使用各种功能。服务器的损坏率是极低的,这 样,企业的维护成本也会降低。c s 结构中的数据传送通过邮件服务中转,例如,传 递一个通知,实际上是将信息复制了n 份,产生了大量的数据传送,给网络带来巨大 压力。同时可能造成病毒在局域网内的快速传播,安全方面存在潜在的隐患。b s 结 构是虚拟数据传送,传送的只是一个标识,具体内容储存在服务器上,相比之下较为 安全。但一个行业中企业发展状况各不相同,也存在适用于c s 模式的企业1 3 j 。所以 项目管理系统的实现应考虑两种方式的并行,具体选择哪种由具体实施中情况决定。 j 2 e e 规范定义的b s 结构具有独特的优势。采用j 2 e e 技术实现的工程项目管理系 统,业务逻辑和业务数据分离,应用服务器负责事务管理、生命周期管理,开发人员 只关注需要实现的业务逻辑,而无需了解底层的通信和管理细节。提高了开发效率和 系统的稳定性,降低了系统出错率,易于与现有系统无缝集成f 3 j 。 1 3 本文的主要工作 在设计开发n e w c i t y 房地产丌发项目管理系统时,综合考虑了代码重用、易于管 理、操作简便以及应用安全和后期维护等方面的要求,采用了m v c 设计模式,并将系 统的w e b 层构建于s t r u t s 框架之上,不再采用传统j s p 文件简单堆砌的方式。s t r u t s 框架 是基于s e r v l e t ,j s p 以及标签库等技术的一个实现良好的w e b 层框架,利用它可以丌发 大型、复杂的w e b 应用系统,并简化代码开发和管理,提高系统的可重用性。 本文以“基于s t r u t s 框架的房地产开发项目管理系统的设计与实现”为题,主要包括 以下几个方面: ( 1 ) 分析了w e b 应用程序的体系结构。 介绍了w e b 应用程序的多层结构、m v c 设计模式及其基于j 2 e e 平台的实现方式。 m v c 设计模式的优势及缺点。 ( 2 ) 对几种w e b 层框架进行了对比。 l 绪论 硕l :论义 着重阐述了s t r u t s 框架的概念、体系结构和工作原理。同时也与其他几种w e b 层 m v c 框架进行对比,说明了用s t r u t s 框架进行设计的优势。 ( 3 ) 详细阐述t n e w c i t y 房地产丌发项目管理系统的分析和设计。 介绍了系统的设计思想和设计目标、软件运行环境。在基于s t r u t s 框架的基础上结 合u m l 对系统进行总体分析建模并对系统的功能模块进行划分。在此基础上,对系统 的进度管理模块进行详细的设计建模。 ( 4 ) 详细描述了s t r u t s 框架在n e w c i t y 房地产丌发项目管理系统实现中的运用。 以进度管理模块为例,从s t r u t s 框架的体系结构出发,结合开发中的实际情况详细 阐述了配置、视图、模型和控制器的设计以及实现过程,以及系统实现过程中的一些 问题的解决方案。最后交待了系统的测试与验证情况。 1 4 论文的组织结构 本文总共分五章。 第一章为绪论,介绍了课题研究的背景和意义,并对工程项目管理系统的国内外 研究现状和发展以及具体实现技术进行分析和讨论,最后给出了本论文研究的主要内 容。 第二章为s t r u t s 框架理论基础,首先介绍m v c 设计模式及其实现。引出使用m v c 设计模式的s t r u t s 框架,分别从体系结构、核心组件和类、工作原理三个方面来介绍 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 框架的基础上结 合u m l 对系统进行分析建模。首先对系统进行需求分析,接着在系统的功能需求以及 非功能需求的基础上对系统进行总体设计,包括系统总体设计、模块的划分、各个模 块的功能描述以及对每个模块的子模块的划分与描述。在此基础上,紧密结合s t r u t s 框架的特点对第四章将要详细介绍其实现的进度管理模块进行更进一步的详细设计。 第四章为系统中进度管理模块的详细实现,首先介绍该模块的功能及工作流程。 然后是如何在s t r u t s 框架下具体实现该模块:模型层、视图层、控制器层的设计与实现, 结合s t r u t s 框架的特点及系统的功能需求,对每一层进行详细的设计并说明其与其他层 是如何配合及协同工作的。最后介绍在系统实现过程中部分问题的解决方案及系统的 测试与验证情况。 第五章总结与展望。首先总结了整篇沦文的主要研究内容及工作中有待改进之 处,接着并提出未来研究的发展方向和有待进一步研究的问题,最后对相关问题进行 了展望。 4 顾f j 论文皋十s t r u t s 根架的房地产开发项u 管理系统的设汁j 实现 s t r u t s 框架理论基础 2 1m v c 设计模式理论基础 2 1 1m v c 设计模式 目前,w e b 应用的开发已成为业界主流。随着w e b 应用的规模和复杂程度的增 加,那种缺乏规范的方法并过于依赖程序员个人能力的开发方式已经不适应大规模 w e b 应用开发的需要。于是软件工程专家提出了w e b 工程的概念,认为w e b 应用 的开发仍然需要经过分析、设计、实现和维护的生命周期,借用软件丌发领域中成熟 的方法和技术具有十分重要的意义【2 1 1 。于是有了w e b 开发中m v c 设计模式的引入。 在2 0 世纪8 0 年代早期,s m a l l t a l k 就丌始提倡将m v c 模式作为一个开发框架。 m o d e l 指的就是业务逻辑,v i e w 是指表示层,它们之间的交互是通过c o n t r o l l e r 完成 的。许多现代的开发环境,包括j a v a 罩的s w i n g 类库,都是使用这种m v c 结构作为 基础1 2 引。下面分别从m o d e l 、v i e w 、c o n t r o l l e r 三个方面来介绍: ( 1 ) 在m v c 中,m o d e l 是执行某些任务的代码,而这部分代码并没有任何逻辑决 定用户端的表示方法。m o d e l 只有纯粹的功能性接口,也就是一系列的公共方法,通 过这些公共方法,便可以取得模型端的所有功能【2 4 l 。 ( 2 ) 在m v c 模式里,v i e w 是应用程序中与用户界面相关的部分,也就是用户看到 并与之交互的界面。一个m o d e l 可以有几个v i e w 端,而实际上,多个v i e w 端是使用 m v c 的原始动机。使用m v c 可以允许多于一个的v i e w 端存在并可以在需要的时 候动态注册所需要的v i e w l 2 1 11 2 4 】。 ( 3 ) m v c 的控制层连接模型和视图。控制器将和视图之问的交互转换为由模型执 行的操作。当用户端与相应的视图发生交互时,用户可以通过视图更新模型的状态, 而这种更新是通过控制器端进行的1 2 4 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 将应用系统分解为表示、逻辑和控制三个部分,整个系 统中各个部分之间的耦合性较小,从而提高了应用系统的可维护性。m v c 设计模式 也可以提高代码的复用率,往往可以不用进行额外的编码就可以在不同的应用程序中 重用业务处理模块。总之,m v c 模式不仅实现了功能模块和显示模块的分离,同时 也提高了应用系统的可维护性、可扩展性、可移植性和组件的可重用性。m v c 各部 分的关系与功能如图2 1 1 1 所示【2 4 】。 m v c 设计模式也存在着自身的不足之处: 2s t r u t s 框架理论皋础坝i j 论文 ( 1 ) 理解困难,耗费时间。使用m v c 需要精心的计划,由于它的内部原理比较复杂, 所以你将不得不花费相当可观的时问去考虑如何将m v c 运用到你的应用程序中。 ( 2 ) 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循m v c ,使模型、 视图与控制器分离,会增加结构的复杂性,也给调试应用程序带来了一定的困难,并 可能产生过多的更新操作而降低运行效率。 ( 3 ) 视图与控制器i 旬过于紧密的连接。视图若没有控制器的存在,其应用是很有限 的,反之亦然,这样就妨碍了他们的独立重用。 图2 1 1 1m v c 各部分的关系与功能 由此可见,m v c 并不适合所有的软件丌发。对于存在大量用户界面、业务逻辑复 杂的大型应用程序,m v c 有利于提高程序的健壮性和重用性。m v c 框架在构建初期 进展缓慢,但从长远角度看,提高了后期软件丌发的效率。 2 1 2j 2 e e 中m v c 模式的实现 j 2 e e ( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ) 足建立服务器应用程序的一种系统平台, 通过把在企业级开发中最基本的、零散的、低层次的语义( 如连接池和各种事务) 封装 到一个基于包容器的体系结构中,而使得开发者专注于业务逻辑的处理过程1 7 j 。 j 2 e e 应用充分地利用了m v c 的优越性。图2 1 2 1 【2 5 l 表示了m v c 模式的j 2 e e 实现框架中涉及的主要j 2 e e 组件。 当用户通过单击一个超链接或者在浏览器中提交了一个表单和内容交互时, s e r v l e t 将起着控制作用。s e r v l e t 协调使用j a v a b e a n 、e j b 或者两者一起执行业务任务、 访问信息。s e r v l e t 封装了一个或多个j a v a b e a n 的结果,在没有传递到j s p 之前,结 6 硕 :论文 基于s t r u t s 框架的房地产歼发项口管理系统的设计j 实现 果将被存储在一些上下文环境( 通常是请求) 中,以后由j s p 来访问。j s p 检索包含结 果值的j a v a b e a n ,并对结果值进行格式化,以便于在浏览器中显示【2 5 1 。 图2 1 2 1j 2 e e 中m v c 模式的实现 通过将模型与视图进行分离,信息的表示可以设计为可插入的和可替换的。所以 同一业务对象在不同的浏览器、个人数字助理( p d a ) ,或者其他网络设备中,可以具 有各不相同的视图1 2 5 1 。 同样,当开发人员创立一个分离的模型类时,他们可以在其他的企业应用程序中 复用这个模型类。 最后,因为命令逻辑和控制逻辑是分离的,控制器职责将仅限于在用户、模型和 视图间进行协调。由于限制了s e r v l e t 的职责,开发人员将可创建“专而精”的组件f 2 5 】。 丌发人员创建控制器时,不需要担心如何显示结果,只需要考虑如何得到结果。 2 2s t r u t s 框架理论基础 2 2 1s t r u t s 框架的体系结构 s t r u t s 由一组相互协作的类( 组件) 、s e r v l e t 以及j s p 卷标库组成。基于s t r u t s 架构 的w e b 应用程序基本上符合j s p 模式2 的设计标准,可以说是m v c 设计模式的一种 实现。s t r u t s 有自己的控制器( c o n t r o l l e r ) ,同时整合了其他的一些技术去实现模型层 ( m o d e l ) $ t l 视图层( v i e w ) 。在模型层,s t r u t s 可以很容易的与数据访问技术相结合,包 括e j b ,j d b c 等。图2 2 1 1 【2 4 j 显示了s t r u t sf r a m e w o r k 的体系结构在响应客户请求的 7 2s t r u t s 框架理论艇础 颂l j 论义 时候,各部分工作原理: 图2 2 1 1s t r u t s 的一i :作流程 ( 1 ) 视图( v i e w ) 组件:s t r u t s 应用中的v i e w 部分是通过j s p 技术实现的。j a v a 丌发者 很容易在j s p 当中过度使用j a v a d 、程序,直接嵌入条件业务逻辑和循环。m v c 解决了 这一问题,通过把复杂的处理分离至- i j m o d e l 和c o n t r o l l e r 组件中,从而使j s p 本身更小。 s t r u t s 更深入的发展了这个方法,除了提供m v c 构架以外还提供了一整套自定义的j s p 标记,通过这些自定义标记可以非常好的和系统的m o d e l 部分交互,通过使用这些自 定义标记创建的j s p 窗体,可以实现和i m o d e l 部分中的a c t i o n f o r m 的映像,完成对用户 数据的封装1 2 训。 ( 2 ) 模型( m o d e l ) 组件:系统中的m o d e l 部分从概念上可分为两类:系统的内部状态 和改变系统状态的动作。s t r u t s 通常使用一组j a v a b e a n 表示系统的内部状念。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 类派生的子类【2 4 1 。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 处理器对象可以直接对它进行读写,而不再需要平l l r e q u e s t ,r e s p o n s e 对象进行数 据交互i 2 引。通过a c t i o n f o r m 组件对象实现了对v i e w 干h m o d e l 之间交互的支持。s t r u t s 在 实现时把做什么( a c t i o n ) $ t l ! t t l 何做( 业务逻辑) 分离,这样可以实现业务逻辑的重用。 ( 3 ) 控制器( 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 功能由 8 硕l j 论文 皋fs t r u t s 框架的房地产开发项h 管理系统的设汁与实现 a c t i o n s e r v l e t 年h 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 对象实现了一个请求到一个具体的a c t i o n 处理器对象之间的 映射。s t r u t sc o n t r o l l e ra 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 对象把 请求映射至l j a c t i o n 处理器对象进行处理。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 处理器对象根据处理结果通矢h c o n t r o l l e r 进行下一步的处理1 2 4 1 。 2 2 2s t r u t s 框架的核心组件和类 s t r u t s 有几个核心类,它们负责对应的m v c 组件的功能。这些核心类有: a c t i o n f o r w a r d 、a c t i o n f o r m 、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 等。除了这些 核心类,s t r u t s 还使用一些配置文件来对应用程序进行控制。s t r u t s 框架的组件结构如 图2 2 2 1 1 2 4 j 所示。 图2 2 2 1s t r u t s 框架的组件结构 ( 1 ) a c t i o n s e r v l e t 类 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 类实现了s t r u t s 框架中的控制器组件,这个类 是 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类的扩展。 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 类,当客户端向服务器发送相关请求时,请求实际上是发 送到a c t i o n s e r v l e t ,一旦控制器得到了该请求,它就会将请求发送给一些辅助类( a c t i o n 类) 处理,这些类知道如何执行与请求对应的业务逻辑操作【2 4 1 。 ( 2 ) a c t i o n m a p p i n g 类 这个类在s t r u t s - c o n f i g x m l 中定义,它是客户端请求中的u r i 和a c t i o n f o r m 以及 9 2s t r u t s 框架理论堆础 硕i j 论文 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 c o n f i g 类,a c t i o n c o n f i g 类封 装了s t r u t s c o n f i g x m i 中定义的所有配置信息。 f 3 ) a c t i o n 类 a c t i o n 类是客户端请求和业务逻辑处理之问的适配器,它将请求- 与, j 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 的实例,最后将调用a c t i o n 类的e x e c u t e ( ) 方法【2 钔。 ( 4 ) a c t i o n f o r m 类 为了响应客户端请求,s t r u t s 为应用程序中的每个表单都创建一个a c t i o n f o r m 类。 在调用a c t i o n 类的e x e c u t e ( ) 方法之前,s t r u t s 将进行以下操作:在对应的关键字下, 查找会话中对应的b e a n 的实例;对于请求中的每个与b e a n 的属性名对应的参数,都 会使用请求中的参数初始化b e a n 的属性的值;调用a c t i o n 类的e x e c u t e ( ) 方法,并将 a c t i o n f o r m 的实例作为参数传给它【2 4 j 。 ( 5 ) a c t i o n f o r w a r d 类 控制器将利用这个类将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 类的e x e c u t e ( ) 方法,在该方法内调用 a c t i o n m a p p i n g 类的f i n d f o r w a r d ( ) b 法,根据名称找到一个本地转发【2 4 】。 ( 6 ) a c t i o n e r r o r s 类和a c t i o n e r r o r 类 a c t i o n e r r o r s 保存a c t i o n e r r o r 对象的集合,其中每个a c t i o n e r r o r 都代表独立的错 误信息。每个a c t i o n e r r o r 都包含了关键字,能够映射到资源文件中存储的错误信息。 a c t i o n e r r o r 类定义了一组重载的构造函数来创建错误信息,它从不独立进行错误处 理,而是存储在a c t i o n e r r o r s 对象中1 2 4 】。a c t i o n e r r o r s 对象保存a c t i o n e r r o r 类的集合 以及它们特定的属性值。 除了以上介绍的几个重要的类,s t r u t s 还依赖于几个配置文件。 ( 1 ) w e b x m l s e r v l e t 要求的w e b 应用程序的配置文件,s e r v l e t j s p 容器根据该文件载入或配置 应用程序。 ( 2 ) s t r u t s c o n f i g x m l s t r u t s 的部署文件,用来载入和配置s t r u t s 框架的各个组件。 ( 3 ) a p p l i c a t i o n p r o p e r t i e s 这个文件将为s t r u t s 应用程序提供资源。 l o 硕f j 论文 旗十s t r u t s 框架的房地产开发项h 管理系统的设计j 实现 2 2 3s t r u t s 框架的工作原理 对于基于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 r u t s c o n f i g x m l 中读取配置信息,把他们存放到各 种配置对象中。具体工作流程如下【3 9 l : ( 1 ) j s pv i e w 发起一个以d o 为后缀的请求。 ( 2 ) a c t i o n f o r m 封装用户请求数据,同时它也可以提供验证数据的功能。 ( 3 ) a c t i o n s e r v l e t ( i 扫s e r v l e t 技术实现) 接受这个请求,它根据s t r u t s c o n f i g x m l 文件 来得到处理这个请求的a c t i o n 对象,并将请求发送给这个a c t i o n 对象。 ( 4 ) a c t i o n 对象接受这个请求,从a c t i o n f o r m 中获得数据,之后处理这些数据, 并调用m o d e l ( j a v a b e a n e j b ) 去处理这个请求,将处理结果返回给a c t i o n s e r v l e t 。 ( 5 ) a c t i o n s e r v l e t 根据a c t i o n 的返回结果中的信息,决定将处理结果返回给对应的 v i e w 。 ( 6 ) v i e w 得到处理结果,并将它显示给用户。 2 3s t r u t s 框架与其他m v c 框架的对比 s t r u t s 是第一个发布的m v c 框架,该框架一经推出,就得到了世界上j a v a w e b 开发者的拥护,到目前为止,s t r u t s 依然是世界上使用最广泛的m v c 框架。目前,基 于w e b 的m v c 框架非常多,发展也很快,每隔一段时间就有一个新的m v c 框架发 布,例如像j s f 、t a p e s t r y 和s p r i n gm v c 等。除了这些有名的m v c 框架外,还有一 些边缘团队的m v c 框架也很有借鉴意义。在这里,我们将把s t r u t s 框架与其他m v c 框架进行一个简单的对比1 5 l j : ( 1 ) s t r u t s 与w e b w o r k 的对比如表2 3 1 所示: 2s t r u t s 框架理论堆础硕i :论义 表2 3 1s t r u t s 框架与w e b w o r k 框架的对比 特征 s t r u t s l 1w e b w o r k 2 a c t i o n 类 在s t r u t s 里面,每一个a c t i o n w e b w o r k 的a c t i o n 类仅需要 实现接口,也可以实现其它的 类必需要继承一个抽象的类 接口来实现更多的功能。 线科模型s t r u t s 的a c t i o n 必需是t h r e a d 在w e b w o r k 中,每个请求对 s a f e 方式,它仪允许个实 例去处理所有的请求。 应一个a c t i o n 。 s e r v l e t 的依赖 s t r u t s 处理a c t i o n 时必需要依w e b w o r k 的a c t i o n 可以通过 赖s e r v l e t r e q u e s t 和 a c t i o n c o n t e x t ,直接玄访问 s e r v l e t r e s p o n s e 。r e q u e s t 和r e s p o n s e 。 测试

温馨提示

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

评论

0/150

提交评论