(计算机软件与理论专业论文)基于struts框架的地税验换证系统的研究与设计.pdf_第1页
(计算机软件与理论专业论文)基于struts框架的地税验换证系统的研究与设计.pdf_第2页
(计算机软件与理论专业论文)基于struts框架的地税验换证系统的研究与设计.pdf_第3页
(计算机软件与理论专业论文)基于struts框架的地税验换证系统的研究与设计.pdf_第4页
(计算机软件与理论专业论文)基于struts框架的地税验换证系统的研究与设计.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机软件与理论专业论文)基于struts框架的地税验换证系统的研究与设计.pdf.pdf 免费下载

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

文档简介

丞窑堑厶鲎墅l 堂位途塞生塞缝坚 中文摘要 为适应社会经济生活的快速发展,地税系统需按新时期的要求做好管理和服 务,实现税务系统的方便、快捷和高效。而税务登记系统从流程上、功能上和系 统性能上存在某些不足。因此,重新设计和丌发税务登记应用系统、减少开发及 维护系统所用的资源,同时提高工作效率将变得十分必要。在应用架构的设计上, 基于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 + 业务代理+ d a o 核心架构策略,并结合换证系 统的实际业务特点,提出了一套合理的架构层次。本架构按照w e b 系统架构的分层 原则分为表示层、业务层和数据层,同时详细地规定了各层次要实现的功能及它 们之间的交互。架构设计的原刚是尽量降低层与层之间的耦合度,达到分层开发 的效果,使各层之间互不干扰,从而提高了开发速度,并保证了开发质量。该架 构也适用于一般的w e b 应用系统开发,因而本项目为其他w e b 应用系统开发提供了 成功的案例。最后,总结出该系统架构的优点及今后研究的展望。 关键词:m v c 模式;s t r u t s 架构;0 r m a p p i n g :d a o 模式 分类号:t p 3 1 1 5 2 e 瘟窑避厶堂熊j :堂位迨塞b i b i a b s t r a c t w i t ht h ed e v e l o p m e n to ft h es o c i e t y , t h et a xr e g i s t r a t i o ns y s t e ms h o u l dd oi t s b e s to nt h em a n a g e m e n ta n dt h es e r v i c ec o n v e n i e n t l ya n de f f i c i e n t l y b u tt h e r ea r es o m e s h o r t a g e si nf l o w ,f u n c t i o na n dp e r f o r m a n c e t h u si no r d e rt or e d u c et h er e s o u r c et h a t t h es y s t e mn e e d e di ti sn e c e s s a r yt or e d e s i g na n dd e v e l o pan e ws y s t e m i nt h e a r c h i t e c t u r ed e s i g n i n g s t r u t sb a s e do i lm v ci sab e s tw a ya si ti sat o o lw h i c hc a n a c h i e v ee x p r e s s i o nl a y e ra n di ti sc o n v e n i e n tf o rt h ed e v e l o p e r so nb o t hd e s i g n i n ga n d d e v e l o p m e n t ,1 1 1 ea s s i s t a n t sc a na l s om a r ko u tt h ef l o wc o n v e n i e n t l ya n dt h es y s t e m w i l lb ec o m p l e t e di nas h o r tt i m e t h i s p a p e rf i r s t i n t r o d u c e st h eb a c k g r o u n do ft a s k s e c o n d l y ,d i s c u s st h e c o r r e s p o n d i n gt e c h n o l o g yt od e v e l o pa n dt h eb a s i ct e c h n o l o g yo fs t r u t sf r a m e w o r k t h i r d l y ,m a i n l yi n t r o d u c e st h es y s t e l nf r a m e w o r ko ft a xr e g i s t r a t i o ns y s t e m d u r i n g d e v e l o p m e n t ,a p p l y i n gm v cd e s i g np a t t e r n ,w i t hs t r u t s + p r o x y + d a o 硒c e n t r a l f r a m e w o r kp o l i c y , c o n s i d e r i n gt h ea c t u a lb u s i n e s sf e a t u r eo fc o n s t r u c t i o ny h z m a n a g e m e n t ,w ep u tf o r w a r da na p p r o p r i a t eh i e r a r c h i c a lf r a m e w o r k i tc o n s i s t so f p r e s e n t a t i o nl a y e r , b u s i n e s sl a y e ra n dd a t al a y e ra c c o r d i n gt ow e bs y s t e mf r a m e w o r k l a y e rd i v i s i o np r i n c i p l e a n df u n c t i o n so f e v e r yl a y e r sa n di n t e r f a c e sf o rc o m m u n i c a t i n g e a c ho t h e ra r ed e f i n e di nd e t a i l t h ep r i n c i p l eo fd e s i g n i n gf r a m e w o r ki st om a k e c o h e s i o nb e t w e e nl a y e r s 越l o w 越p o s s i b l e i te n a b l e sy o ut od e v e l o ph i e r a r c h i c a l l y w i t h o u ti n t e r v e n t i o nd e v e l o p m e n to nt h ec o n d i t i o no fe n s u r i n gt h eq u a l i t y n l e f r a m e w o r kc a na l s ob ea p p l i e di nd e v e l o p i n go t h e rc o m m o nw e ba p p l i c a t i o ns y s t e m , t m s s y s t e mc o u l db el o o k e da sa s u c c e s sc a s e a tl a s t p a p e rs u m m a r i z e st h ea d v a n t a g e o f t h i sf r a m e w o r ka n db r i n gf o r w a r de n v i s i o no f t h er e s e a r c hi nt h ef u t u r e k e y w o r d s :m v c d e s i g np a t t e r n ;s t r u t sf r a m e w o r k ;o rm a p p i n g ;d a op a r e m c l a s s n o :t p 3 1 1 ,5 6 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印j 缩印或扫描等复制手段保存、汇编以供查阅和借阅a 同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:虐诌 签字日期:佩,) 月w 日 聊躲孙动 签字日期:o _ 7 年7 。月硼日 瘟童道厶堂亟堂位迨塞 垫剑挂壹蛆 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 学位论文作者签名:力怕 签字日期:御年,月伽日 致谢 两年半的研究生生活转眼间就要结束了,回顾这段难忘的时光让我充满了眷 顾与感激。在这段时间里我不仅学到了更多的专业知识,而且参与了项目实践, 更重要的是认识了许多优秀的老师和可爱的同学,在这争我要对他们给予我的帮 助、关心与鼓励表示衷心的感谢。 首先我要感谢我的导师宋泽海老师。在研究生学习期间,他一直给予我学术 指导及无私的帮助,不仅为我提供良好的实验条件、学习环境,还毫无保留的传 授实际软件开发技术和经验。宋老师严谨的治学态度,为我们树立了榜样。论文 撰写期间,宋老师经常给我提出指导和修改意见,论文的顺利完成离不开他的悉 心指导。 其次我要感谢须德教授,须老师不仅在研究上给予指导,更从生活上关心和 照顾我们,从他身上我们不仅学到了知识,更重要的是学会了做人、治学的道理。 感谢实验室以及我朝夕相处的所有同学在学习和生活中给予的关心和帮助。 此外我要深深的感谢多年来默默支持我的父母和家人,感谢他们为我的学习 和生活所付出的种种艰辛,是他们的支持和鼓励让我有了战胜困难的勇气和决心。 最后,衷心地感谢在百忙之中审阅论文的各位老师和专家,恳请各位老师多 多批评指正,并提出宝贵的意见。 e 巫窑堡厶i :亟堂位途塞j i 言 1 1 课题背景 1 引言 目前我国政府正在大力推行政府职能改革,以适应正在高速发展的社会经济 生活,其核心内容就是突出政府的服务职能。但是传统政务遵循政务边际成本递 增法则,即社会化任务越重,管理范围越大,相应的管理成本就越高【”,显然必 须实现政务的变革。而信息技术特别是互联网技术的飞速发展,使越来越多的政 府部门可以借助它的力量来达到此目的,即利用电子商务的手段提升自身的服务、 构建电子政府、实现电子政务。 税,取之于民用之于民,是政府取得财政收入基本来源,而财政收入是维持 国家机器正常运转的经济基础,所以国家税收部门作为国民经济的重要综合管理 部门之一,其电子化进程,自然是电子政务建设的重中之重。 因此,为适应社会经济生活的快速发展,特别是大力建设服务型政府的要求, 地税系统需按新时期的要求做好管理和服务,实现税务系统的方便、快捷和高效, 迫切需要对现行税务登记系统从流程上、功能上和系统性能上进行变革。 然而,随着国家政策以及税务相关业务和技术的发展,北京市地税局验换证 系统存在某些不足,主要表现在: ( 1 ) 税务登记证格式发生变化:原有的税务登记证格式单一,不能满足 企业和单位的需求信息。 ( 2 ) 换证方式单一:以往的系统,纳税人只能通过手工填写申请信息表, 然后到所在的区县办理相关的业务,这不仅对于交通不便的纳税人 极为不便,而且使办税人员的工作量严重增加。 ( 3 ) 成本较高:纳税人可能填写申请表的时候不符合要求,但是却无从 知道如何更正,只有到税务局经过办税人员才能订正,效率较低。 而解决这些问题的关键是重新选择和设计具有优良体系结构的换证系统,为 用户提供界面友好、使用方便、扩展性较好的换证平台。 1 2课题意义 本课题的选题方向是如何有效地进行地税验换证应用系统的丌发,出于地税 换证有本身的一些业务特点,它相对于一般程序的设计具有独特的挑战性。在丌 e 躯奎堑厶堂亟e 堂垃迨塞 i i 蛊 发验换证系统时采取分而治之的办法,而j 2 e e 技术j 下好能够满足要求,它的应用 编程模式要求丌发者把表示逻辑,业务逻辑和数据访问逻辑分丌,用m v c 模式参 照s t r u t 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 简称模型一视图一控制器, 是x e r o x p a r c 在2 0 世纪8 0 年代为编程语言s m a l l t a r k 一8 0 发明的一种软件设计模 式) s t r u t s 架构的基础上,提出了一个比较适合地税验换证应用系统的架构,并以这 个架构为依据描述了如何应用这个架构进行页面、业务与数据库相分离的设计与 开发。这个系统架构不但给开发设计本系统提供了合理分工和开发规范,而且给 类似系统的开发带来了合理的依据。 1 3 论文的组织结构 本论文以地税局验换证系统为主线,展开讨论设计模式和w e b 应用体系结构 上分层的概念,重点介绍了m v c 设计模式和持久化技术,在它们的基础上详细描 述了实现m v c 设计模式的一个经典架构实例s t r u t s 架构,并结合相关项目实际情 况架构出适合w e b 大型应用系统开发基于j 2 e en 层结构的系统架构,最后,描 述了利用这个系统架构如何进行大型w 曲应用系统的开发和设计。本文共分为五 壹。 第一章引言介绍课题研究的背景及意义,以及论文的组织安排。 第二章相关技术综述首先介绍了j 2 e e 架构、对象持久化技术及其框架,接 着阐述了m v c 设计模式的特点,最后在此基础上重点介绍了s t r u t s 框架的核心组 件、标记库及优势。 第三章系统总体设计对验换证系统进行需求分析,结合验换证本身的特性, 在s t r u t s 框架的基础上,对系统的总体框架进行选择与设计,并简单介绍了功能模 块的划分。 第四章验换证系统的详细设计与实现重点讨论了如何扩展s t r u t s 架构,从而 形成本系统的框架同时可以利用这个框架进行w e b 上企业级应用系统的开发与设 计。 第五章系统的测试方法和部分运行界面描述了该系统所做的测试,以及系 统的使用情况及运行结果。 第六章总结与展望 e 峦盆堑厶堂亟兰:位盈塞 扫羞挂盛篮述 2 相关技术综述 丌发j a v a w e b 程序涉及的概念多、技术面广,j a v a w e b 程序丌发属于j 2 e e 体 系架构的一部分,在j a v aw e b 设计实践时,需要结合w e b 程序设计的三层体系结 构( 或n 层体系结构) ,选择适合开发的程序框架、设计模式。 2 1j 2 e e 架构 目前,j a v a 2 平台有3 个版本,它们是适用于小型设备和智能卡的j a v a 2 平台 m i c r o 版( j a v a2p l a t f o r mm i c r oe d i t i o n 。j 2 m e ) 、适用于桌面系统的j a v a 2 平台标准版 ( j a v a2p l a t f o r ms t a n d a r de d i t i o n 。j 2 s e ) 、适用于创建服务器应用程序和服务的j a v a 2 平台企业版( 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 ,j 2 e e ) p j 。 j 2 e e 是一种利用j a v a 2 平台来简化企业解决方案的开发、部署和管理相关的 复杂问题的体系结构【“。它提供了对j a v as e r v l e t sa p i 、j s p ( j a v as e r v e rp a g e s ) 、 e j b ( e n t e r p r i s ej a v a b e a n s ) 以及x m l 技术的全面支持。由此,j 2 e e 提供了一个 企业级的计算模型和运行环境用于开发和部署多层体系结构的应用,通过提供企 业计算环境所必需的各种服务,使得部署在j 2 e e 平台上的多层应用可以实现高可 用性、安全性、可扩展性和可靠性。 j 2 e e 体系包括很多技术开发w e b 应用程序,主要涉及技术垆j 包括j s p ,s e r v l e t , e j b ,j d b c ,j n d i ,j m s ,j a v a m a i l 等。 2 1 1j 2 e e 四层模型 j 2 e e 使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组 件根据他们所在的层分布在不同的机器上。事实上,s u n 设计j 2 e e 的初衷j 下是为了 解决两层模式( c l i e n u s e n r e r ) 的弊端,在传统模式中,客户端担当了过多的角色而 显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可 伸展性也不理想,而且经常基于某种专有的协议,通常是某种数据库协议。它使 得重用业务逻辑和界面逻辑非常困难。现在j 2 e e 的多层企业级应用模型将两层化 模型中的不同层面切分成许多层f 6 j 。一个多层化应用能够为不同的每种服务提供一 个独立的层,以下是j 2 e e 典型的四层结构t 7 : ( 1 ) 客户层组件:客户层是用户的使用界面。j 2 e e 客户端既可以是w e b 客户 端,也可以是应用程序客户端。 ( 2 ) w e b 应用层组件:可以是j s p 贞面或者s e r v l e t 。w e b 层处理用户输入,并 3 丞窑垣厶堂亟e 主垃监塞担苤垃丕红适 把输入发送到运行在业务层上的e j b 处理。 ( 3 ) 业务逻辑层组件:业务层满足业务需求,由运行在业务层上的e j b 处理。 ( 4 ) 企业信息系统( e n t e r p r i s ei n f o r m a t i o ns y s t e m ) 层软件:企业信息系统层 处理企业信息系统软件,包括企业基础建设系统、企业资源计划( e n t e r p r i s e r e s o u r c e sp l a n n i n g ,简称e r p ) 、大型机事务处理、数掘库系统和其它的遗留信息 系统。图2 ,l 为j 2 e e 多层应用结构。 j 2 e e 应用程序1j 2 e e 应用程序2 r r 1 i 应h j 程序客户端ii 动态h t m l 页面客户层l 客户端机器 互 习 ! 图2 1j 2 e e 多层应用结构 f i g u r e2 1m u l 卸l e a p p l i c a t i o n s t r u c t u r eo f j 2 e e j 2 e e 服务器 数据库服务器 “容器”指应用服务器提供的特定功能的软件模块,是能提供基本功能的底 层平台。j 2 e e 为多层w e b 应用系统提供了容器平台。开发者开发的程序组件在相 应的容器内部署运行。 表2 1j 2 e e 的容器 t a b l e2 1c o n t a i n e ro f j 2 e e 容器名称 描述 应用客户端容器负责w e b b 奇用程序在客户端组件的执行。 a p p l e t 容器特殊的应埘客户端容器,负责在w e b 浏览器希l j a v a 插r 【:上远行j a v a a p p l e t 穰_ 序。应州客户端容器雨i a p p i e t 容器基本对应w e b 戍心样序多层 结构中的_ j 户接口层。 w e b 容器 管理j s p ,j s t l 币l s e r v l e t 等w e b 组件的执行,这些组件主要负责程序和 w e b 层通值,对麻w e b 应用程序多层结构的表示层。 e j b 容器 负责e j b 的远行,土要负责数据处理以及年i i 数据庠或其它j a v a 科序的通 信,对麻w e b 应j | 榉序多层结构的业务屋手数据访问层。 4 立窑适厶堂亟:兰:位 沦塞担羞丛丕盆蕉 2 2对象持久化技术 对象持久性技术的主要研究目标是在高级程序设计语言层次实现对象持久 性,有效地存储和管理持久对象,使程序员按同一表达式语法访问暂态对象和持 久对象,统一暂态对象空间和永久对象空i 日j p j 。显然,对象持久化将改变对象的生 命周期,一旦系统中支持持久化,对象的生命周期在被创建和被使用之后,可以 通过持久化机制而延续,持久化就是通过提供保存对象状态并在以后恢复它的方 法来存储和检索该对象的。这样,对象不需要重新创建,通过持久化存储和检索, 就可以将对象恢复,做进步使用,特别是在应用j a v a b e a n 时,持久化使b e a n 对象 的定制信息不会在应用程序结束时丢失,这一点非常重要。 持久化对象时要考虑对象中需要持久存储的信息,此外,要考虑持久对象的 存储场所,持久化的对象可以存储在文件系统、数据库系统或大型事务处理系统 中。 2 2 1实现持久化的设计模式 d a o ( d a t a a c c e s so b j e c t d a o ) 是实现持久化的一种设计模式,它是在一定 的相关背景下提出的。根据存储的类型( 关系数据库、面向对象数据库等) 和供 应商的不同,持久性存储( 比如数据库) 的访问差别也很大。当业务组件( 如会 话b e a n ) 或表示组件( 如助手组件) 需要访问某数据源时,它们可以使用合适的 a p i 来获得连接以及操作该数据源。但是在这些组件中包含连接数据源和数据访问 的代码会引入这些组件及数据源实现之间的紧密耦合。组件中这类代码依赖性使 应用程序从某种数据源迁移到其它种类的数据源将变得非常麻烦和困难,当数据 源变化时,组件也需要改变,以便于能够处理新类型的数据源。这就需要提供一 种对象来抽象和封装数据库的访问机制,数据库访问对象就是在这样的背景下产 生的 9 1 。 2 2 2d a o 模式的工作原理 d a o 模式的工作原理【1 0 l 在基于j 2 e e 平台的应用程序模式中,d a o 模式是一个 位于业务层之上的集成层的模式,它实现了操作对数掘源的访问机制。d a o 的作 用主要是抽象数掘源,提供对数据源的透明访问。d a o 模式为使厍 b e a n 管理的持 久性的e j b 提供了业务层和资源层之矧的松散祸合。出于数据访m 对象会截墩和服 务所有对资源层的防问,就使得资源层的实现细节对客户透明。通过使j 月该模式 e 瘟奎丝厶堂亟翌位i 金塞担羞缝丕益述 可以创建更加轻便灵活、低耦合度的应用程序。组件的实现一般是这样的:一个 业务组件向d a o 发出访问数据源的请求,由d a o 组件实施对数据源的访问,并将 操作结果返回给业务组件。 b u s i n e s so b j e c t 代表业务层的数据访问请求端。正是该对象需要访问数据源以 获得和存储对象。b u s i n e s so b j e c t 可能是会话b e a n 、实体b e a n 或其它类型的j a v a 对 象。d a o 是该模式的主要对象。d a o 抽取了b u s i n e s so b j e c t 的低层数据访问实现, 以保证对数据源的透明访问。b u s i n e s s o b j e c t 也可以把数据加载和存储操作委托给 d a o 。d a t as o u r c e 代表数掘源实现。数据源可以是r d b m s 的数据库、o o db m s 和x m l 资料库等。v a l u eo b j e c t 代表用作数据携带者的值对象。d a o 一般使用值对 象把数据返回给b u s i n e s so b j e c t 。当b u s i n e s so b j e c t 要更新数据源的数据时,客户 端会把要更新的内容以值对象的形式传递给d a o 。图2 2 为d a o 模式类图。 2 3对象一关系映射 图2 ,2d a o 模式类图 f i g u r e2 2u m l o f d a od e s i g n 对象一关系映射( o r m a p p i n g ) 就是j a v a 应用中的对象到关系数据库中的表的 自动的( 和透明的) 持续化,使用元数据对对象与数据库问的映射进行了描述。 本质上,对象关系映射的工作是将数据从一种表示( 双向) 转换为另一种。对象 关系映射解决方案有四部分组成:其一,在持续类的对象上执行基本的c r u d 操作 的一组a p i ;其二,用于指定查询的一种语言或一组a p i ,这些查询会引用类和类 属性;其三,用于指定映射元数据的工具;其四,实现对象关系映射的一项技术, 用来与事务对象交互以完成脏检查、懒关联存取和其它优化功能。 使用对象一关系映射这个术语包含所有可以根据元数掘的描述自动生成s q l 的 持续层。不包含丌发者通过编写s o l 和使用j d b c 手工解决对象关系映射问题的持 6 k 壅窒丝厶堂亟堂位迨童 担羞垃苤筮蕉 续层。使用o r m 应用与o r ma p i 和根据f 层s q l j d b c 抽象出来的域模型类进行 交互。依赖于这些特征或特定的实现,对象一关系映射运行时也可能承担例如缓存 等问题的职责,完全免去了应用对这些问题的关心。 使用o rm a p p i n g 的优点如下: ( 1 ) 提高开发效率,降低丌发成本。因为o rm a p p i n g 框架已经把数据库转 变成编程人员熟悉的对象,编程人员只需要了解面向对象开发就可以实现数据库 应用程序的开发。 ( 2 ) 简化代码,减少b u g 数量。通过o f rm a p p i n g 系统,能够大量的减少程 序的开发代码行数,减少代码的出错机会。 ( 3 ) 提高性能:同时通过c a c h e 的实现,能对性能进行调试,实现o rm a p p i n g 分隔实际数据存储和业务层之问的关系,能够对每一层进行单独跟踪,增强性能。 ( 4 ) 隔离数据源,可以很方便的转换数据库:利用o rm a p p i n g p t 将业务 层与数据存储隔开,开发人员不需要关心实际存储的方式,如果需要把s q ls e r v e r 数据库换成o r a c l e 数据库,只需要修改配置文件,不需要修改程序j 。 2 4m v c 模式 随着w e b 应用开发技术的发展,先后出现了c g i ,a s p ,p w p 及j s p 等开发语言, 这些技术的产生缓解了w e b 编程的难度。但是它们有一个共同点,就是未能将业务 逻辑和界面显示分离开来。也就是说,w e b 编程往往由一个或少量的开发人员来完 成,在开发上,依然存在着较大的困难。在这种情况下,有人提出了m v c 的设计 模式,它在理论上实现了业务逻辑与界面显示的分离,它的提出对w e b 的应用开发 具有重要意义。 2 4 im v c 模式简介 m v c 模式主要有3 个部分组成【1 2 1 :模型( m o d e l ) 、视图( v i e w ) 和控制器 ( c o n t r o l l e r ) ,在各个对象之间取得高层接口,使应用程序的输入、处理和输出 分开,同时在程序与程序之问进行重用,如图2 3 所示。 e 豆童堑厶里亟堂位论塞揎差焦苤筮蕉 图2 3m v c 结构图 f i g 2 3s t r u c t u r eo f m v c ( 1 ) 模型是程序执行的关键部分。所有的操作都是在这一部分实现的,提供 应用业务逻辑类。它若需要取得视图中的对象或更新视图时,需要通过控制器来 进行处理。模型表示业务逻辑和业务规则等,在m v c 的三个部件中,拥有最多的 处理任务。它可以用j a v a b e a n 和e j b 等组件技术来处理数据库的访问。模型能为多 个视图提供数据。由于应用于模型的代码只需写一次就可被多个视图重用,所以 减少了代码的重复性。 ( 2 ) 视图是屏幕上的显示,模型进行操作之后,其结果就是通过视图来显示 的。视图是用户看到并与之交互的界面。对传统的w e b 应用程序来说,视图就是由 h t m l 元素组成的界面,在新式的w e b 应用程序中,h t m l 依旧在视图中扮演着重 要的角色,但一些新的技术已层出不穷,它们包括f l a s h 和x h t m l ,w m l 等一些标 识语言。m v c 能使应用程序处理很多不同的视图,在视图中其实没有真正的处理 发生,只是作为一种输出数据并允许用户操作的方式。 ( 3 ) 控制器用于管理用户与视图发生的交互。控制器能从视图中取值,然后 将相应的值传给模型进行处理。控制器接受用户的输入并调用模型和视图去完成 用户的需求。当用户单击w 曲页面中的超链接和发送h t m l 表单时,它只是接收请 求并决定调用哪个模型组件去处理请求,然后确定用哪个视图来显示模型处理返 回的数据。控制器连接不同的模型和视图去完成用户的需求,给定一些可重用的 模型和视图。控制器可以根掘用户的需求选择模型进行处理,然后选择视图将处 理结果显示给用户。 由上述可知,m v c 的处理过程是,首先控制器接收用户的请求,并决定应该 e 峦銮遒厶主亟堂位地塞塑基篮盔筮篮 调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据, 最后控制器用相应的视图返叫数掘,并通过表达层呈现给用户。m v c 设计模式的 优点【1 3 】:设计清晰、设计的有效模块性、易于扩展、功能强大的用户界面。 由于运用m v c 的应用程序的三个部件是相对独立,改变其中一个不会影响其 它两个,所以依据这种设计思想能构造良好的低耦合的软件架构。m v c 将使软件 在健壮性、代码重用等方面上一个新的台阶。 2 4 2j s pm o d e l1 和j s pm o d e l 2 虽然m v c 设计模式很早就出现了,但在w e b 应用的开发中引入m v c 却是步履 维艰。这是因为w e b 应用系统的开发具有一些鲜明的特点。其一是在w e b 应用的开 发中,程序语言和h t m l 的分离一直难以实现。另一个特点是,传统的设计方式即 页面到页面( p a g et op a g e ) 方式将数据显示、业务逻辑、流程控制和数据持久性 处理等模块强耦合在一个代码模块中,采用这种模型在开发中容易产生很多问题, 而且会随着应用程序规模的不断扩大而加剧系统开发、维护的复杂程度。为此s u n 公司先后制定了两种规范口”,称为j s pm o d e li n j s pm o d e l2 。 j s pm o d e l l m o d e l l 的基础是j s p 文件。j s p 既要负责业务流程控制,又要负责提供表示层 数据,同时充当视图和控制器,没有实现这两个模块之间的独立和分离。早期的 一些w e b 开发技术比如a s p 、p h p 都使用类似的模式来开发的。m o d e l l 体系最大的 优点是简单,因此较常用于小规模的应用开发。 r e q u e s ti 7 :嗽。盯露珊 k e s p o n s e i _ 丽i l _ l i i i i 盯:_ 、, j s p m o d e i2 a p p l i c a t i o ns e r v e re n t e r p r i s es e r v e r 幽2 4j s p m o d e l1 f i g u r e2 4j s pm o d e l1 9 e 立窑丝厶堂亟土堂位丝塞担苤丝盔蕴丝 j s pm o d e l2 是一种联合使j 日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 s 模型,如图2 5 所示。 图2 5j s p m o d e l2 f i g u r e2 5j s pm o d e l2 这个模型使用j s p 来生成表示层的内容,让s e r v l e t 完成大量的事务处理,而b e a n 则用来存储数据。s e r v l e t 充当控制器的角色,负责处理用户请求,它创建j s p 页需 要使用的j a v a b e a n 对象,然后根据用户的请求,决定将哪个j s p 页返回给用户。在 j s p 中没有处理逻辑,它仅负责检索由s e r v l e t 仓j 建的j a v a b e a n 对象,并从s e r v l e t 中 提取内容插入到静态模板。这种设计方法,使得j a v a 工程师和h t m l 开发者可以专 注于自己擅长的一部分,进而能够明确开发者与网页设计者的分工。由此可见, 越复杂的项目,使用m o d e l2 的好处就会越大。 2 5框架 框架【l 川( f r a m e w o r k ) 是软件系统的整体或部分的可重用设计,阐明了整个设 计、协作组件之间的依赖关系、责任分配和控制流程,表现为一组抽象组件及组 件实例之问交互的方法。另一种定义认为,框架1 1 6 峡注应用领域中已建立的系统 结构,是可以被开发人员定制的应用系统的架构,是大粒度的可重用部件。前者 是从体系结构的角度给出的定义,而后者是从设计模式的角度给出的。在面向对 象的丌发方法中,框架由多个抽象类或具体类组成,是一个具有特定关系的类集 合。 框架是组件技术、软件体系结构研究和应用软件丌发结合的产物。框架的粒 度越大,包含的领域知识就越完整。图2 6 为框架在:高层系统结构中的位置。 o 业座塞丝厶:至亟 :堂位迨塞担簋缝苤蕴述 业务代码 t 公共接口i 框架组件 服务提供者接口i t上 业务代码 圈2 6 框架在高层系统结构中的位置 f i g u r e2 6l o c a t i o no f f r a m e w o r ki nh i g hs y s t e ms t r u c t u r e 2 6s t r u t s 框架 s t r u t s 应用框架是m v c 设计模式在j 2 e e 平台的w e b 层上的一种具体实现。 s t r u t s 正是一种基于m v c 设计模式的优秀应用框架,它采用的主要技术是s e r v l e t 、 j s p 和c u s t o mt a gl i b r a r y i l ”。图2 7 展示了与m v c 之间的映射关系: 视图!控制器模型 幽2 7s t r u t s 与m v c 模式的映射 f i g u r e 2 7m a p p i n g b e t w e e ns t r u t sa n dm v c 依照m v c 设计模式的基本思想,s t r u t s 应用框架同样应该划分为三个基本组成 部分:模型、视图和控制器i ”i 。 ( 1 ) 模型m o d e l t 奎窒适厶芏亟土主位监塞担筮壁鲞绽堕 基于s t r u t s 的系统中的m o d e l 可以分为两个部分:系统的内部状态、能够改变 状态的行为( 业务逻辑) 。 系统内部状态的表示方法很多( 例如s e r v l e t 或者j s p ) ,但在基于s t r u t s 的应用程 序中,大多数情况下,开发人员会将它表示为一组一个或多个的j a v a b e a n ,并使用 这些j a v a b e a n 的属性( p r o p e r t y ) 来定义当阿状态的细节。这些用于表示系统内部 状态的j a v a b e a n 被称为f o r m b e a n ,f o r m b e a n 是m o d e l 的代表,每一个f o r m b e a n 都 必须继承于a c t i o n f o r m 类,其主要作用是向作为c o n 打0 1 1 e r 一部分的a c t i o n 对象提供 数据。 在大型应用程序中,开发人员通常将系统的业务逻辑表示为可以被j a v a b e a n 调用的方法,这些j a v a b e a n 用于维护系统的状态信息。 在一些小型应用程序中,同样的行为又可能嵌入到作为c o n t r o l l e r - - 部分的 a c t i o n 对象中,这种方法适合应用在业务逻辑比较简单或者业务逻辑不会被其他应 用重用的系统中。 ( 2 ) 视图v i e w 视图通过一组j s p 文件来实现,这些文件中没有业务逻辑,只有标签,它是通 过s t r u t s 提供丰富的标签库【l9 1 ,包括自定义的标签库来访问b e a n 组件,并生成显示 页面,反馈给用户,这实现了表示逻辑和业务逻辑分开,b 1 m o d e l 和v i e w 的分离。 ( 3 ) 控制器c o n t r o l l e r 在基于m v c 设计模式的应用程序中,c o n t r o l l e r 部分的主要作用在于从客户端 接收请求,决定执行何种业务逻辑,然后将产生下一步用户界面的责任委派给一 个适当的v i e w 组件。 c o n t r o l l e r 的基本组件是一个在a c f i o n s e r v l e t 类中定义的s e r v l e t 。这个s e r v l e t 通 过定义一组l i l a c t i o n m a p p i n g 类描述的相应映射来进行配置。每个映射定义一个与 所请求的u r i ( u i l i f o r mr e s o u r c ei d e n t i f i e r ,统一资源定位) 相匹配的路径和一个 对应a c t i o n 类的完整类名,这种a c t i o n 类被称作a c t i o n b e a n 。每一个a c t i o n b e a n 都 必须实现a c t i o n 接口,其主要作用是负责调用系统所期望的业务逻辑,然后将控制 任务分派给适当的v i e w 组件来创建响应。 2 6 1s t r u t s 核心组件 s t r u t s 的核心组件组成包括: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 b e a n , a c t i o n f o r mb e a n ,s t m t s 标记库。如表2 2 所示: e 峦童遒厶翌亟:王位监塞担苤缝盛绽述 表2 2s t r u t s 纽什 t a b l e2 2s t r u t sc o m p o n e n t 缨嘲罗鐾鬻鬻繁鬻群獬翟璎戮燃群锹臻鬻搿潮 浚基溉赫l 愚玉豁凌鑫蠡瓣基:# 巍赫溉。瓣癜;i 潦蠢蒜翩 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 0 1 1 1 1显示数据模块 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 e l t o t 存储和回收错误 s t r u t s 标记库帮助开发视图层 ( 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 继承i ! l j a v a x s e r v l e t h t t p h a p s e r v l c t ,它是这一框架的核心。我们 可以把它看作是s t r u t s 结构的w e b 应用的调度程序,调度的依据a c t i o n m a p p i n g 对象提供。它的基本功能是截获用户的h t t p 请求,并将用户请求封装至l j 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 中进行业务逻辑处理,并根据处理结果返回给a c t i o n f o r w o r d 对象,此对象连接到 相应的( v i e w ) j s p 页面。 ( 2 ) 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 s e r v l e t 指 明了具体执行路线,是s t r u t s 体系结构的具体体现者。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 m a p p i n g 对象 与之相对应。它需要应用开发者配置与用户请求相对应的a c t i o n f o r m 数据属性、是 否需要进行数据校验和回写、a c t i o n 数据处理、输入页面、以及处理完成后可能跳 转的页面等一组属性信息,这组属性信息构成一个a c t i o n m a p p i n g 对象,它决定了 该项请求的处理过程。 ( 3 ) a c t i o n f o r m

温馨提示

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

评论

0/150

提交评论