




已阅读5页,还剩51页未读, 继续免费阅读
(计算机应用技术专业论文)基于mvc设计模式的医药经销系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
堕笙堡三矍奎兰堡堂堡丝苎 摘要 随着计算机技术和i n t e r n e t 的发展,管理信息系统( m i s ) 的应用越来越 广泛,特别是在医药经销系统中,m i s 的使用可以为企业的管理和决策提供有 力的依据,并最终提供工作效率和经济效益。但目前大多数m i s 还是早期的c s 结构,由于业务逻辑和显示页面没有明显的分离,造成业务模型的重用性差, 很难满足用户需求的变化。 近年来,随着网络技术的迅速发展和j 2 e e 平台的广泛应用,基于b s 的多 层w e b 体系结构逐渐成熟起来。m v c 设计模式分离了数据的控制和数据的表现, 在实现多层w e b 应用系统中具有明显的优势。 本文在研究分析m v c 模式、j 2 e e 开发平台等先进技术的基础上,应用这些 技术设计并实现了一个基于m y c 模式,应用s t r u t s ,s p r i n g 和h i b e r n a t e 的5 2 e e 异地药店连锁药品经营企业信息管理系统的解决方案,针对管理系统中异地 数据库集成的问题,着重论述了业务数据的对象化封装、信息处理效率的提 高及业务处理的安全性保证等关键问题的解决方法。 该系统的主要功能己实现,其雏形在医药商业系统进行了初步的测试, 运行结果表明采用的技术路线正确,设计的方案合理可行。 关键词:医药经销;m v c :s t r u t s :s p r i n g :h i b e r n a t e 哈尔滨工程大学硕士学位论文 a b s tr a c t w i t ht h ed e v e l o p m e n to fc o m p u t e rt e c l l l l 0 1 0 9 ya n di n t e m e t ,m i si sw i d e l y u s e dt op r o v i d ep o w e r f u ls u p p o r tf o rc o m p a n y sm a n a g e m e n td e c i s i o n m a k i n g a n di n c r e a s et h ew o r ke f f i c i e n c ya n de c o n o m i cb e n e f i t ,e s p e c i a l l yi nm e d i c i n e d i s t r i b u t i o ns y s t e m m o s to fm i ss t i l lu s ec ss t r u c t u r e ,b e c a u s et h es e p a r a t i o no f t h eb u s i n e s sd i s p o s i t i o na n ds h o wp a g ei sn o td i s t i n c t i ti sn o tg o o da tt h er e u s eo f b u s i n e s sm o d e la n di ti sd i f f i c u l tt os a t i s 白t h ec h a n g eo f u s e rr e q u e s t i nr e c e n ty e a r s , w i t i lt h er a p i dd e v e l o p m e n to fn e t w o r ka n de x t e n s i v e a d o p t i o no fj 2 e ep l a t f o r m ,m u l t i l a y e rw e bs t r u c t u r eb a s e do n b sg r o w su p g r a d u a l l y m v cd e s i g np a t t e r ns e p a r a t e sc o n t r o lo fd a t af r o mr e p r e s e n t a t i o no f d a t a , a n dt h e r e f o r eh a st h ea d v a n t a g eo fi m p l e m e n t a t i o no fm u l t i l a y e rw e b a p p l i c a t i o n t h i sp a p e rf o c u s e so nt h ec o m b i n a t i o no ft h et h r e ef r a m e w o r k s s t r u t s , s p r i n ga n dh i b e r n a t e ,a n a l y z e dm v c ,j 2 e ep l a t f o r ma n d s oo n ,a n dp u t sf o r w a r d t oa l ls t r a t e g i cs o l u t i o no nam e d i c i n ed i s t r i b u t i o nc h a i ns y s t e mm a n a g e m e n tb a s e o nm v cd e s i g np a t t e r n i td i s c u s s e st h er e a l i z a t i o no fd a t al a y e r , b u s i n e s sl a y e r a n dw e bl a y e ro ft h es y s t e m ,t h es o l u t i o no fk e yp r o b l e m sa s f o l l o w si s e m p h a s i z e d :t h ee n c a p s u l a t i o no fb u s i n e s sl o g i c ,o p t i m i z i n gt h ee f f i c i e n c y o f i n f o r m a t i o nd i s p o s a la n dh o wt oe n s u r et h es e c u r i t ya n di n t e g r i t yo f d a t a a c c e s s t h em a i nf u n c t i o no ft h es y s t e mh a sb e e na c c o m p l i s h e d t h ee l e m e n t a r y a p p l i c a t i o nh a sb e e na p p l i e d t om e d i c i n eb u s i n e s s t h er e s u l ts h o w st h a tt h e t e c h n i c a lr o u t ei sr e a s o n a b l ea n dt h es c h e m ei sr a t i o n a la n df e a s i b l e k e y w o r d s :m e d i c i n e d i s t r i b u t i o n ;m v c ;s t r u t s :s p r i n g ;h i b e r n a t e 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导 下,由作者本人独立完成的。有关观点、方法、数据和文 献的引用已在文中指出,并与参考文献相对应。除文中已 注明引用的内容外,本论文不包含任何其他个人或集体己 经公开发表的作品成果。对本文的研究做出重要贡献的个 人和集体,均已在文中以明确方式标明。本人完全意识到 本声明的法律结果由本人承担。 日期:洲年月 日 哈尔滨【稃大学硕+ 学位论文 1 1 项目背景 第1 章绪论 哈市医药商业总公司主营中、西成药、中药材和化学制剂等,十几年来, 销售规模逐年扩大,先后购并了十几家医药商业网点,形成了遍布全省及一 些周边地区的庞大的销售网络,新的经营模式必然会带来许多新的管理难题, 特别是如何能够跨越时空,从总部角度真正做到对异地的药品连锁店进行细 致、及时而有效的管理,这已经成为目前跻身大市场的企业管理瓶颈。 目前,该公司采用的是基于c s 结构,随着信息化建设的推进,计算机技 术和计算机网络,特别是互连网的发展,原来的系统逐渐不能满足当前的经 销过程和大量的业务管理。 首先是数据共享问题,因为各药店分布广泛、情况不同,尤其是后购并 的药店,采用的操作系统等不同,而且后台使用的数据库大都不同,所以系 统之间很难有效的进行数据交换和共享。 第二,管理混乱,各个系统相互不联接,对于异地业务缺乏统筹管理。 第三,系统可伸缩性差,系统不能很好地适应需求的变化。 第四,安全性差,很容易造成重要数据的流失。 综上所述,为了提高企业的工作效率和原有系统的利用率,加强企业的 管理和竞争优势,就必须对这些原有的系统进行有效的改进和整合,建立一 套完善的、能够准确反映出现有经销模式和经销过程的系统,来克服原有系 统存在的种种弊端。本文为了解决医药经销过程中的信息共享等问题,专门 研究基于m v c 设计模式的应用软件系统开发技术问题。 1 2 技术背景 随着软件规模和复杂度的同渐升级,人们越来越深刻的认识到,良好的 哈尔滨工程大学硕士学付论文 软件体系结构对保证系统的成功至关重要。早先的以c s ( c l e n t s e r v e r 一客 户服务器) 结构为代表的两层模式,c s 结构的客户端庞大、服务器端容易 成为瓶颈等缺点促使多层分布式结构的出现。 如今,网络己融入人们的生活,各种w e b 应用系统也应运而生,但随着用 户需求的不断变化和市场竞争的日益激烈,这些w e b 应用系统必须不断地改进 其内容和形式,而解决该问题的关键是选择正确的软件系统体系结构。w e b 应用系统多采用基于b s ( b l o w s e r s e r v e r ) 的三层或多层框架结构,就w e b 应用系统整体而言,大多采用表示层、业务层、数据层三层或多层体系结构。 m v c 模式正是将系统划分为模型层、视图层、控制层,因此,m v c 模式适应了 日益复杂的w e b 应用系统的设计需求。采用m v c 模式构建w e b 应用系统的体系结 构,能够有效解决在w e b 应用系统开发过程中由于系统结构的复杂程度较高而 带来的一些问题,诸如代码之间的耦合度、代码的易维护性,应用系统的可 维护性、可扩展性、可移植性和组件的可复用性等关键性的问题m 。 目前,最流行的服务器端组件解决方案是:m i c r o s o f t 公司的w i n d o w sd n a 体系:n e t 框架,s u n 公司的j 2 e e 体系架构和o i l 4 g ( o b j e c tm a n a g e m e n tg r o u p ) 组织的c o r b a 规范。 由o m g 提出的公共对象请求代理结构c o r b a 对象是目前比较流行的一种中 间件规范,也是一种构件实现规范,为应用开发提供了一个公共架构,使在 分布异构的环境上实现基于对象软件的可重用、可移植和互操作。 m i c r o s o f t n e t 是目前的企业w e b 服务平台市场的重要的应用程序框架 之一,对在局域网、广域网甚至是i n t e r n e t 上计算机对象之间的通信提供了 完全的支持。通过使用d c o m 用户的应用程序可以在任何网络位置上达到真正 的分布性m ”。 以上两种分布式结构可以实现在统一特定的环境下的应用,比较适合构 建局域网应用系统。但是针对跨平台应用和基于互连网的应用,二者缺少灵 活性。医药经销管理系统的服务器程序可以运行于任何平台,而不仅限于 w i n d o w s ( n e t 仅限于w i n d o w s 平台) ,并且用户群分布广,不可能仅限于局域 网使用,因此这两种体系都不适合予医药经销管理系统的开发。 近年来,m v c 模式被引入至u s u n 公司的j 2 e e 平台。在基于j 2 e e 的应用开发 中,m v c 模式利用控制器来分离模型和视图,达到层间松散耦合的效果,从而 2 哈尔滨工程大学硕士学位论文 提高了系统的灵活性、复用性和可维护性等m ,。 s t r u t s 框架是一个基于m v c 模式的w e b 应用程序框架,主要采用s e r v l e t 和j s p 技术来实现的,对m v c 设计模式的三个部分提供了对应的实现组件,现 在成为a p a c h ef o u n d a t i o n 的j a k a r t a 项目的一部分。s p r i n g 框架是由r o d j o h n s o n e o 立的另一个开放源码的应用框架,它为j 2 e e 应用提供了一个基础结 构,另外还提供了许多使用j 2 e e 相关技术的工具性的支持。h i b e r n a t e 也是一 个开源框架,它是一种实现对象和关系之间映射( o r m ,o b j e c tr e l a t i o n m a p p i n g ) 的框架,它对j d b c 进行了轻量级的对象封装。使得j a v a 程序员可以 使用面向对象编程思维来操作关系数据库。 本系统是基于s t r u t s + s p r i n g + h i b e r n 8 t e 框架的j 2 e e 架构,这个架构实现 了m v c 开发模式,使系统的表示层、业务逻辑层和数据库服务层之间的耦合度 很低,可以实现修改少量代码就完成对系统功能的增减和数据库服务器的更 改。 1 3 研究意义 医药经销管理系统是针对药品经销连锁店开发的套管理信息系统,它 是基于现阶段流行的w e b 框架的b s 架构,本课题采用了一个基于m v c 模式上重 组设计与开发,整合了s t r u t s 、s p r i n g 和h i b e r n a t e 三种开源思想,用于解决 业务逻辑和数据存储的方案,并应用于以药品销售为主体的医药经营信息管 理系统的开发中。 通过本系统,一方面它能够有效解决企业各部门之间的数据共享问题和 各个销售环节的真实状况信息管理问题,实现了异地连锁店的有效管理,便于 公司及时了解下属连锁药店的销售情况。 另一方面,该系统又解决了不同操作系统和数据库的异构环境下的互操 作问题。 另外,从长远角度解决了系统易于维护和能有效地与需求同步的伸缩性。 3 哈尔滨1 :程大学硕十学位论文 1 4 本文研究内容 本人参加了医药商业总公司信息管理系统的需求分析,总体设计以及部 分子模块的实现。 本课题主要研究的内容如下: 1 根据管理系统的特性和要求,采用了帆c 模式实现基于j 2 e e 平台的管 理信息系统的解决方案和实现方法。 2 分析和研究t m v c 模式的原理和优缺点,从理论上对在开发基于j 2 e e 的多层w e b 应用中采用m v c 设计模式的必要性做了论述。 3 分析和研究了s t r u t s 框架、s p r i n g 框架和h i b e r n a t e 对象关系数据库 映射工具技术的原理和特点,阐述了其m v c 模式的设计思想,并讨论了在构建 医药管理信息系统的s t r u t s 、s p r i n g 和h i b e r n a t e 框架的整合方案。 4 。对医药管理信息系统进行了需求分析和设计,给出基于m v c 模式的j 2 e e 应用医药管理系统的解决方案,荠应用框架整合方案对系统开发。 4 哈尔滨喇犟大学硕七学位论文 第2 章m v c 设计模式 当前的应用系统正在向多层w e b 的方向发展,设计多层w e b 应用的一个难 点是如何创建结构合理整洁的瘦客户机层,在组合正确的外观和行为、包装 表示逻辑的同时,不能和任何业务逻辑混杂,将用户界面、流程控制和业务 逻辑进行分离,要在各层创建易于阅读、易于维护、易于扩展的代码,这就 需要一个能开发出松散耦合应用程序的解决方案,m v c 设计模式符合了这种日 益复杂的w e b 应用系统的设计需要。 2 ,1 m v c 设计模式概述 m v c ( m o d e l v i e w - c o n t r 0 1 e r ,模型一视图一控制器) 是8 0 年代伴随着 s h o a l l t a l k 一8 0 语言出现的一种软件设计模式,在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 的方式进行分离,这样一个应用被分成了三个核心模块一模型、视图、控制 器,它们分别承担不同的任务。图2 1 显示了这几个模块各自的功能和他们的 相互关系。 图2 1m v c 关系图 哈尔滨工程大学硕士学位论文 模型部件是软件所处理问题逻辑在独立于外在显示内容和形式情况下的 内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,它独立于具体 的界面表达和u o 操作。 视图部件把表示模型数据及逻辑关系和状态的信息及特定形式展示给用 户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或 视图。 控制部件是处理用户与软件的交互操作的,其职责是控制提供模型中任 何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将 输入反馈给模型,进而实现对模型的计算控制,是佼模型和视图协调工作的 部件。 这种模型的基本原理是把应用程序的数据和业务逻辑、数据的外观呈现 以及对数据的操作划分到不同的实体中去,这些实体分别称为模型、视图和 控制器。其中,模型处理的任务最多,而被模型返回的数据是中立的,由控 制器确保用户界面于模型闻的对应联系,就是说模型与数据格式无关,这样 一个模型能为多个视图提供数据。由于应用模型的代码只需写一次就可以被 多个视图重复使用,所以增加了代码的重用性w 。 传统的m v c 模式只是从概念上将视图从流程控制、业务逻辑中独立出来, 并定义了相互间作用的机制,使各个模块的开发相互独立,但是它没有针对 不周的视图类型,解决流程控制等对象的统一问题。因此,针对具体的研究 对象,我们在使用m v c 模式时需要对此做进步的研究。 2 2w e b 中的常用的开发模式 2 。2 1j s pm o d e l1 虽然m v c 设计模式很早就出现了,但在w e b 应用的开发中引入m v c 却是 举步维艰。这是因为w e b 应用系统的开发具有一些鲜明的特点。其是客户 机与服务器问是无状态连接。h t t p 的低层是t c p i p 协议,而t c p i p 是一种 无状态连接协议,这种无状态使得模型很难更改通知视图,为了使视图能同 6 哈尔滨工程大学硕士学位论文 步表达模型的状态,客户端必须不断向服务器进行查询,这样会加剧服务器 端的负担。另一个特点是:传统的设计方式即页面到页面方式将数据显示、 业务逻辑、流程控制和数据持久性处理等模块强耦合在一个代码模块中,采 用这种模型在开发中容易产生很多问题:开发很难分工;维护时阅读量大、 逻辑错综复杂难;模块间强耦舍,更改业务逻辑或数据牵涉到的相关网页必 须逐个修改。 为了解决以上问题,s u n 公司先后制定了两种规范,称为2 s pm o d e l l 和 j s pm o d e l 2 。虽然m o d e l l 在一定程度上实现了m v c ,但是它的运用并不理想; 直到基于j 2 e e 的j s pm o d e l 2 问世才得以改观。 图2 2j s pm o d e l l m o d e l l 是一个以j s p 文件为中心的模式,在这种模式中j s p 页面不仅负 责表现逻辑,也负责控制逻辑。在用m o d e l l 开发大型项目时,程序流向由一 些能够感知的页面决定,当修改一页可能会影响相关的很多页面,使得程序 修改和维护变得非常困难。 为了克服m o d e l l 的缺陷,人们引入了m o d e l 2 2 2 2j s pm o d e l2 它引入了“控制器”这个概念,控制器一般由s e r v l e t 来担任,客户端的请 求不直接送给一个处理业务逻辑的j s p 页面,而是送给这个控制器,再由控制 器根据具体的请求调用不同的事务逻辑,并将处理结果返回到合适的页面。 7 哈尔滨工程大学硕士学位论文 这个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 t e r 本身,就构成了 c 模式。实践证明,m v c 模式为大 型程序的开发及维护提供了巨大的便利,如图2 3 。 图2 3j s pm o d e l 2 基于m v c 模式进行设计不仅可以很方便的开发三层结构的应用体系,而且 它把用户界面设计、流程控制和事务进行了分离,使界面设计同数据操作完 全隔离开来,不但使整个开发设计清晰,还对系统的测试及维护带来了相当 的便利。在j 2 e e 企业应用开发中,采用m v c 模式,首先,它能使软件开发有章 可循,结构清晰,缩短开发周期:其次,它能有效改善软件系统的性能,大 大提高软件的可维护性与可扩展性。 2 3m v g 设计模式的优缺点 m v c 的优点表现在以下几个方面: 1 可以为一个模型在运行时同时建立和使用多个视图。变化一传播机制 可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和 控制器做到行为同步。 8 哈尔滨工程大学硕士学位论文 2 视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根 据需求动态的打开或关闭、甚至在运行期间进行对象替换。 3 模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独 立地移植到新的平台工作。需要做的只是在新平台上对视图和控制器进行新 的修改。 4 潜在的框架结构。可以基于此模型建立应用程序框架,不仅仅是用在 设计界面的设计中。 州c 的不足表现在以下几个方面: 1 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循m v e , 使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新 操作,降低运行效率。 2 视图与控制器问的过于紧密的连接。视图与控制器是相互分离,但确 实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然, 这样就妨碍了他们的独立重用。 3 视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能 需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问, 也将损害操作性能。 4 目前,一般高级的界面工具或构造器不支持m v c 模式。改造这些工具 以适应m v c 需要和建立分离的部件的代价是很高的,从而造成使用m v c 的困难。 因此,我们在选择m v c 开发模式时必须仔细考虑以下问题: 必须以基于m v c 组件的方式重新思考和设计应用结构。原来通过建立一个 简单的j s p 页面就能实现的应用现在变成多个步骤的设计和实现过程,要进行 附加地开发工作; f 、,c 本身就是一个非常复杂的系统,所以采用m v c 实现w e b 应用时,最好选 一个现成的m v c 框架,在此之上进行开发,从而取得事半功倍的效果。 2 4 基干j 2 e e 和m v c 开发多层w e b 应用 m v c 模式在概念上的定义是很丰富的,但是为了维持模型的一般性,m v c 模式对于许多实现上的问题并没有给出明确的应用,不同的环境可能有不同 9 哈尔滨工程大学硕十学位论文 的实现方式,即使利用最先迸的软件平台j 2 e e ,开发多层w e b 应用仍然是个难 题,在基于组件的j 2 e e 平台充分灵活的内置情况下,如何组织应用程序以实 现简单、高效的应用程序升级、维护和扩展,以及如何让不懂程序代码的人 员避开程序数据成为我们首先要解决的问题。我们既要充分考虑到多层结构 中各层之间需要密切配合才能完成最终功能。又要在实际开发中尽可能的使 各层的开发相对独立,减少各层之间的耦合程度,避免开发人员互相制约, 同时还必须考虑如何提高系统的效率。 m v c 是设计交互式应用时广泛采用的一种设计模式,也是j 2 e e 蓝图推荐的 在开发w e b 应用时使用的方法。射c 模式分离了数据的控制和数据的表现。由 于不存在耦合,将多数据集表述在多视图中就变得很容易,同时也使得为新 的客户类型提供支持更为简单。使用这种结构,代码冗余被最大限度地减少。 对于开发人员来说,可以分清开发者的责任:程序设计人员可以专注于业务 的处理,网络设计人员专注于用户交互的界面。基于j 2 e e 平台和m v c 设计模式, 可以容易的构建可复用的软件系统框架,同时简化软件开发,提高软件性能 和可维护性,达到提高软件质量的目的”,。 2 5 本章小结 m v c 是开发软件非常好的基本模式,它将业务处理与显示分离,强迫将应 用分为模型、视图以及控制层,强迫你考虑应用的额外复杂性,把这些想法 融进架构中,增加了应用的可拓展性。但是如果要隔离模型、视图和控制器 的构件,必须重新考虑应用程序,尤其是应用程序的构建方面。使用m v c 设计 模式,就要应付它所带来的额外的工作和复杂性,m v c 将会使你的软件在健壮 性、代码重用和结构方面上一个新的台阶“- 。 采用m v c 的开发模式,将企业的商业逻辑与前端用户界面分开,使整套系 统能适应医药商业连锁企业的发展特性:一方面,随着企业的发展壮大,即 使有一定业务逻辑的更改,或有与其它系统的整合需要,也能保持前端用户 界面的一致性,另一方面,根据管理层的不同需要,在不更改底层程序逻辑 的基础上,随时可使用合适的方式显示信息,而这些特点正好适合医药商业 信息管理系统的需要“l 。 1 0 哈尔滨1 稃大学硕十学位论文 第3 章医药经销系统的w e b 应用框架设计 m v c 作为一种设计模式,有众多框架来实现它,比如典型的有s t r u t s 、 s p r i n g 、j s v 等,正确选择适合于项目的开发框架有利于提高效率和系统质量。 下面分析和研究了s t r u t s 框架、s p r i n g 框架和h i b e r n a t e 对象关系数据库映 射工具技术的原理和特点,阐述其m 1 ,c 模式的设计思想,并讨论在构建医药管 理信息系统的s t r u t s 、s p r i n g 和h i b e r n a t e 框架的整合方案”“。 3 1s t r u t s 框架 s t r u t s 是a p a c h e 软件基金会j a k a r t a 项目的一个丌源项目,是一个基于 s u nj 2 e e 平台的m v c 框架,s t r u t s 主要采用大多数开发者熟知的j a v a b e a n 、 j s p 、s e r v l e t 等标准技术,对m v c 设计模式的三个部分提供了对应的实现组件, 它的目的是使运用m v c 模式开发w e b 应用的时间减少。在利用j s p ,s e r v e t 的优 点建立可扩展的j 2 e ew e b 应用时,s t r u t s 是一个不错的选择,为应用系统提 供了一个良好的软件框架,解决了由于应用的复杂性而在软件开发过程中带 来的各种问题。s t r u t s 的工作原理,如图3 1 所示; 图3 1s t r u t s 实现的m v c 框架 1 i 哈尔滨工程大学硕士学位论文 s t r u t s 的体系结构提供了对开发m v c 系统的低层支持。很好的实现 m o d e l - v i e w c o n t r o l l e r 设计模式的概念,并且它将这些概念映射到w e b 应用 程序的组件和各个层次中。 3 1 is t r u t s 与m v c 的关系 s t r u t s 实质上就是在j s pm o d e l 2 的基础上实现的一个m v c 框架,是a p a c h e 组织的一个开放源码项目,它采用的主要技术是s e r v l e t 、j s p 和定制化标签。 s t r u t s 框架的基本构成如图3 2 : l 翌丑魈窀兰羔婆望: z z z z i i 群建! 笾量塑! i 匕 ( 视图) i 亡 ( 控制器) i用 ( 模型的数据) l :调用 癌癌一;臣自 图3 2s t r u t s 框架的基本构成 作为一个m v c 框架,s t r u t s 都对应的实现了m v c 的m o d e l 、v i e w 和 c o n t r o l l e r ,本系统框架也对应提供了实现组件“”。 1 模型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 ) 和“如何做”( 业务逻辑) 分离,这 样可以实现业务逻辑的重用。 医药管理系统框架也为m o d e l 部分提供a c t i o n 对象,a c t i o n 处理器对象 封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的v i e w 组件以产生响应。 2 视图v i e w s t r u t s 应用的v i e w 部分主要由j s p 技术实现的。s t r u t s 提供丰富的j s p 标 签库,通过这些标记可以非常好地和系统的m o d e l 部分交互,通过使用这些标 记创建的j s p 表单,可以实现和m o d e l d p 的a c t i o n f o r m 的映射联系起来,完成 1 2 哈尔滨工程人学硕士学位论文 对用户数据的封装,同时这些标记还提供了其他许多功能。 此外,通常把s t r u t s 框架中的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 n 中的数据进行修改,j s p 文件是用s t r u t s 标签读取修改后的信息,重新设 置h t m l 表单。 3 控制器c o n t r o l l e r 在s t r u t s 中,承担m v c 中c o n t r o l l e r 角色的是一个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 是一个通用的控制组件。这个控制组件提供 了处理所有发送到s t r u t s 的h t t p 请求的入日点。它截取和分发这些请求到相 应的动作类( 这些动作类都是a c t i o n 类的子类) 。另外,控制组件也负责用相 应的请求参数填充a c t i o nf o r m ( 通常称之为f o r m b e a n ) ,并传给动作类( 通 常称之为a c t i o n b e a n ) 。动作类实现核心商业逻辑,它可以访问j a v ab e a n 或 调用e j b 。最后动作类把控制权传给后续的j s p 文件,后者生成视图。所有这 些控制逻辑利用s t r u t s c o n f i g x m l 文件来配置。 3 1 2s t r u t s 框架的处理流程 图3 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 文件中读取配置信息, 1 3 哈尔滨工程大学硕十学位论文 把它们存放到各种配置对象中,例如a c t i o n 的映射信息存放在 a c t i o n m a p p i n g 对象中。当接收到一个客户请求时,将执行如下流程: i 检索和用户请求匹配的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 0 方法。 4 如果a c t i o m f o r m 的v a l i d a t e 0 方法返回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 实例包含的映射信息决定将请求 转发给哪个a c t i o n 如果相应的a c t i o n 实例不存在,就先创建这个实例,然 后调用a c t i o n 的e x e c u t e0 方法。 6 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 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 组件生成动态网页,返回给客户。 对于流程4 ,如果a c t i o n f o r m 的v a li d a t e ( ) 方法返回一个包含一个或多 个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 对象,就表示表单验证失败,此时 a c t i o n s e r v l e t 将直接把请求转发给包含用户提交表单的j s p 组件,这种情 况下,不会创建a c t i o n 对象n 一。 3 1 3 系统框架中s t r u t s 的设计 由于s t r u t s 已经为开发系统提供了一个非常好和稳定的m v c 框架,本文在 这里采用s t r u t s 开发m v c 系统便可以大大加快开发的速度。下面本文还将对以 下问题进行探讨和分析“”: 1 收集和定义应用需求。 2 基于数据采集和显示的原则定义和开发“屏幕显示”需求。 3 为每一个“屏幕显示”定义访问路径。 4 定义a c t i o n m a p p i n g s 建立到应用业务逻辑之间的联系。 1 4 哈尔滨工程大学硕士学位论文 5 开发“屏幕显示”需求的所有支持对象。 6 基于每一个“屏幕显示”需求提供的数据属性来创建对应的 a c t i o n f o r m 对象。 7 开发被a c t i o n m a p p i n g 调用的a c t i o n 对象。 8 开发应用业务逻辑对象( b e a n ,e j b 等) 9 对应a c t i o n g m a p p i n g 设计的流程创建j s p 页面。 l o 建立相应的配置文件s t r u t s c o n f i g x m l 、w e b x m l 。 3 2s p r i n g 架构 s p r i n g 是轻量级容器框架中重要的一员,它具有轻量级容器框架的所有 特征。轻量级容器在w e b 应用以及其他包括在j 2 e e 环境中运行的应用来说,都 有助于提高它们的复用程度,例如业务对象和数据访问对象( d a o ) 的复用。 3 2 1s p r i n g 的体系结构分析 s p r i n g 提供了管理业务对象的一致性方法,并且鼓励了注入方式的对接 口编程而不是对类编程的良好风格。其实接口编程的概念在业界都比较提倡, 这是个很好的趋势。接口编程正是s p r i n g 的优势。它的架构基础是基于使 用j a v a b e a n 属性的i n v e r s i o no fc o n t r o l ( 控制反转) 容器。然而,这仅仅是 其架构中的一部分。在基于j a v a b e a n s 的配置管理下,它可以使组织应用变得 十分容易和快速。而且提供了具体的异常层次结构,简化了出错处理,大幅 度减少开发人员需要编写的代码,实际上,开发人员根本不必再编写模块来 调用j d b c 。s p r i n g 最大的特色就是控制反转( i o c = i n v e r s eo fc o n t r 0 1 ) 和依赖注入( d i = d e p e n d e n c ei n j e c t i o n ) 的设计思想“”。 本文在设计医药管理系统框架中,也创建业务层的接口,我们依从于 s p r i n g 的倡导为业务类定义一个接口。 业务逻辑接口文件,代码清单3 一l ,业务逻辑接口为i o r d e r s e r v i c e : p a c k a g ec o m m e a g l e s e r v i c e : i m p o r tc o n l m e a g l e s e r v i c e d a o i o r d e r d a o ; l5 哈尔滨工程大学硕士学位论文 p u b i ci n t e r f a c ei o r d e r s e r v i c e p u b l i ca b s t r a c to r d e rs a v e n e w o r d e r ( o r d e ro r d e r ) t h r o w so r d e r e x c e p t i o n ,o r d e r m i n i m u m a m o u n t e x c e p t i o n : p u b l i ca b s t r a c to r d e rf i n d o r d e r b y i d ( i n ti d ) t h r o w s o r d e r e x c e 口t i o n : p u b li ca b s t r a c ti o r d e r d a og e t o r d e r d a o ( ) : p u b l i ca b s t r a c tv o i ds e t o r d e r d a o ( i o r d e r d a oo r d e r d a o ) : i o r d e r s e r v i c e 的实现类为o r d e r s e r v i c e s p r i n g i m p l ,此实例用到了 o r d e r d a o ,所以需要做声明,而且,o r d e r d a o 属性需要使用i o c 注入,完整代 码如下: 实现业务层接口类,代码清单3 2 ,实现类为0 r d e r s e r v i c e s p r i n g i 叩l : p a c k a g ec o m m e a g l e s e r v i c e s p r i n g : i m p o r tc o m m e a g l e b o o r d e r : i m p o r tc o l l m e a g l e b o o r d e r l i n e i t e m : i m p o r tt o m m e a g l e s e r v i c e i o r d e r s e r v i c e ; i m p o r tt o m m e a g l e s e r v i c e d a o i o r d e r d a o ; p u b l i cc l a s so r d e r s e r v i c e s p r i n g i m p li m p l e m e n t si o r d e r s e r v i c e p r i v a t el o r d e r d a oo r d e r d a o ; p u b li co r d e rs a v e n e w o r d e r ( o r d e ro r d e r ) t h r o w so r d e r e x c e p t i o n ,o r d e r m i n i m u m a m o u n t e x c e p t i o n 实现业务逻辑 d u b l i co r d e rf i n d o r d e r b y i d ( i n ti d ) t h r o w so r d e r e x c e p t i o n 实现业务逻辑 p u b li ci o r d e r d a og e t o r d e r d a o ( ) r e t u r no r d e r d a o : d u b l i cv o i ds e t o r d e r d a o ( i o r d e r d a 0o r d e r d a o ) 1 6 哈尔滨丁稃大学硕士学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年3D打印技术的器官打印技术
- 中国银行2025肇庆市秋招群面案例总结模板
- 工商银行2025十堰市小语种岗笔试题及答案
- 中国银行2025鹤壁市笔试英文行测高频题含答案
- 邮储银行2025临夏回族自治州结构化面试15问及话术
- 建设银行2025上饶市秋招英文面试题库及高分回答
- 中国银行2025桂林市秋招半结构化面试题库及参考答案
- 邮储银行2025中卫市信息科技岗笔试题及答案
- 建设银行2025上海市秋招无领导小组面试案例题库
- 轻武器操作课件
- 托管中心学生托管合同协议书
- 高中生物近5年生物高考真题分类和解析(神经调节)
- 押金管理制度
- 人教版(2024) 七年级上册英语培优补差教学工作计划
- DL-T5707-2014电力工程电缆防火封堵施工工艺导则
- 职业素养提升第2版(大学生职业素养指导课程)全套教学课件
- 《研学旅行课程设计》课件-制订研学课程目标
- JJF 1033-2023 计量标准考核规范
- 公安当场处罚案件培训课件
- 肉毒中毒医学课件
- EGFR信号转导机制及靶向治疗
评论
0/150
提交评论