




已阅读5页,还剩46页未读, 继续免费阅读
(计算机软件与理论专业论文)基于mvc模式的网上购物系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东大学硕士学位论文 中文摘要 随着互联网的发展和全球经济一体化,电子商务的建设变得非常重要。近 年来,网络的迅猛发展给人们生活各个方面带来很大的便利,也使得企业向着信 息化的方向发展。同时,企业的需求也带来了w e b 开发技术的更新。在经历了 c g i ,a s p ,j s p 之后,s u n 公司整合多种技术标准提出了j 2 e e 这一企业级开发平 台,己非常成熟,并得到飞速发展。 一 要构建一个成功的系统,除了掌握新的技术外,还需要很多其他方面的知识, 比如设计模式。设计模式是一套被反复使用、多数人知晓的、代码设计经验的总 结。使用设计模式的好处就是做到了代码重用、让代码更容易被他人理解、保证 代码可靠性。因此,在实现购物系统的过程中,本文引入了设计模式的概念。m v c 设计模式能够消除传统w e b 应用开发方式所具有的弊端并分离数据的控制和表 现,以适应越来越复杂的多层w e b 应用系统的设计需求。因此,采用基于m v c 设 计模式成为开发j 2 e ew e b 应用的首选。 本文研究了在w e b 上实现m v c 设计模式的s t r u t s 框架,以及符合j a v a 面向 对象编程思想、易于使用数据库的h i b e r n a t e 框架,在此基础上,将这些技术应 用到了一个真实的电子商务网站的开发中,并通过j a v a 集成开发环境e c l i p s e , 实现了一个网上购物系统。系统功能主要包括注册与身份验证、商品浏览、购物 车、添加删除商品、订单处理。实践证明该系统具有良好的可扩展性、可维护性, 在配置相应的w e b 应用服务器后,即可进行发布并使用。 关键词:电子商务;网上购物系统;j a v a ;j 2 e e ;m v gs t r u t s ;h i b e r n a t e 7 山东大学硕士学位论文 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 ei i l 缸釉e ta n dg l o b a le c o n o m i ci n t e g r a t i o n ,t h e b u i l d i n go fe = c o m m e l - b e c o m e sm o r ei m p o r t a n t i nr e c e n ty e a r s ,w i t h t h e d e v e l o p m e n to fi n t e m e t t h en e 咖r kb r i n g sm o r ea n dm o t ec o n v e n i e n c e s t op e o p l e s l i f ei ne v e r ya s p e c ta n da l s ou r g e st h ei n f o r m a t i o n a ld e v e l o p m e n to f t h ee n t e r p r i s e a t t h es s j t i et i m et h en e e d o ft h eb u s i n e s sa l s op r o m o t e st h er e n e w a lo fw e b s d e v e l o p m e n tt e c h n i q u e a l t e rc g i ,a s pa n dj s p ,b a s e do ni n t e g r a t i n gt e c h n o l o g y s t a n d a r d s ,t h es u nc o m p a n yp u tf o r w a r dab u s i n e s s - l e v e ld e v e l o p m e n tp l a t f o r m , j 2 e e i th a sb e c o m eg r a d u a l l ym a t u r ea n dd e v e l o p sr a p i d l y as u c c e s s f u ls y s t e m sb u i l d i n gn e e d sal o to fk n o w l e d g ei no t h e rf i e l d sb e s i d e s g r a s p i n gn e wt e c h n i q u e ss u c h 鹤u s i n gd e s i g np a t t e m d e s i g np a t t e r ni sa s e to fc o d e d e s i g ns u m m a r yt h a ti su s e do v e ra n do v e ra g a i na n dk n o w nb ym a j o r i t y u s i n g d e s i g np a t t e r nc a na t t a i nt h ec o d er e u s e ,m a k ec o d em o r ee a s i l yu n d e r s t o o db yo t h e r s a n dg u a r a n t e et h ec o d ei sr e l i a b l e s ot h ec o n c e p to fd e s i g n 弘i 曲e 鹏i si n t r o d u c e di n t h e 删晦eo ft h es h o p p i n gs y s t e m t h em v cp a t t e r n 啪o v c t c o n q l ed i s a d v a n t a g e so f t h et r a d i t i o n a lw a yo f w e b sa p p l i c a t i o na n dd e v e l o p m e n t i ta l s os e p a r a t e st h ec o n t r o l a n dt h ev i e wo ft h ed a t a a st om e e tt h ed e m a n dt ot h em u l t i - l a y e rw e ba p p l i c a t i o n c o m p l i c a t e dm o r ea n dm o r e s ot h em v cl 弼t t t e mi st h ef i r s tc h o i c ei nd e v e l o p i n gt h e j 2 e ew e b a p p l i c 吐i o n i nt h i s 弘i p c f ;t h eb a s i cc o n c e p t so fe - c :0 m m e l v , ea n do n l i n es h o p p i n gs y s t e m h a v eb e e ns t u d i e d t h ed e v e l o p m e n ts t a t u sa n dd y n a m i ca b o u to n l i n es h o p p i n g s y s t e mh a sa l s ob e e nr e s e a r c h e d ,a n dt h e nd i s c u s s e dt h et e c h n o l o g i e sa n dm e t h o d s u s e di no n l i n es h o p p i n gs y s t e m i nt h i sp a p e r , t h es t r u t sf r a m e w o r kw h i c hr e a l i z e st h em v cd e s i g np a t t e r no nt h e w e ba n dt h eh i b e m a t ef r a m e w o r kw h i c hm a t c h e sj a v ap r o g r a mt h i n k i n g o f o b j e c t - o r i e n t e da n dw i e l d yd a t a b a s ea r es t u d i e d o nt h i sb a s i s , t h e s et e c h n i q u e sa r e u s e di nt h ed e v e l o p m e n to far e a lb u s i n e s sw e b s i t ea n da no n l i n es h o p p i n gs y s t e m 阻s b u i l ta n dw a si n t e g r a t e di n t oe c l i p s eb yj a v a 硼ks y s t e mf u n c t i o n si n c l u d et h e r e g i s t r a t i o n ,v e r i f i c a t i o no fi d e n t i t yg o o d s ,s h o p p i n gc a r t , a d do rc a n c e lg o o d sa n d o r d e rp r o c e s s i n g p r a c t i c e h a sp r o v e dt h i s s y s t e mh a sg o o ds c a l a b i l i t y a n d m a i n t a i n a b i l i t y i tc a nb e r e l e a s e da n du s e da f t e rt h ea p p l i c a t i o ns c l v e ri sd e p l o y e d k e yw o r d s :e q 3 0 m n e i v a :;o n l i n es h o p p i n gs y s t e m :j a v a :j 2 e e :m v c :s t r u t s ; h i b e r n a t e 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研 究作出重要贡献的个人和集体,均已在文中以明确方式标明。本声明 的法律责任由本人承担。 论文作者签 关于学位论文使用授权的声明 本人同意学校保留或向国家有关部门或机构送交论文的印刷件 和电子版,允许论文被查阅和借阅;本人授权山东大学可以将本学位 论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩 印或其他复制手段保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名: 师签名:! 塾出期:盔丑竺:w 山东大学硕士学位论文 1 1 研究背景 第1 章绪论 电子商务是指一种依托现代信息技术和网络技术,集金融电子化、管理信息 化、商贸信息网络化为一体,旨在实现物质流、资金流、与信息流和谐统一的新 型贸易方式,是贸易过程的电子化、网络化n 3 。按应用领域划分,电子商务有以 下几种模式啪: 1 企业( b u s in e s s ) 对消费者( c o n s u m e r so rc u s t o m e r s ) ,也称商业机构对个 人用户即b 2 c ; 2 企业对企业,也称商家对商家即b 2 b ; 3 企业对政府机构( g o v e r n m e n t ) 即b 2 g ; 4 消费者对政府机构即c 2 g ; 5 网上拍卖等个人行为即c 2 c 。 b 2 c 模式相当于现实生活中的“商场一或“专卖店一商业机构利用先进的 通信和计算机网络的三维图形技术,把现实的商业街搬到网上,并通过建立网站, 在线发布信息和提供数据库检索向用户介绍和销售产品;消费者使用浏览器进行 诸如浏览、购买、定单发送、支付操作:最后由商家将产品送到消费者手中。c 2 c 比较类似于现实生活中的。小商品批发市场一,网站提供数据库检索和一定的安 全保障,收取一定的费用,商品信息的上载和交易的协1 都由作为独立个体的“买 家 和“卖家一完成,一个网站中同时存在数目众多的个体经营者,网站只起一 个现实中“市场管理者片的作用。一般来说,网上购物模式与b 2 c 模式、c 2 c 模 式联系比较紧密。 目前,在市场上运行的网上购物系统主要以t c p i p 等广泛应用的网络协议 为通信支撑,采用w i n d o w sn t ,u n i x l i n u x 和w i n d o w sc e 等国际通用网络操作 系统,基于b s 模式的分布式网络环境下的电子商务应用:其中数据库服务器主 要使用o r a c l e 、粥s q ls e r v e r 、i b md b 2 和s y b a s es o ls e r v e r 等性能稳定的 国际知名d b m s ,采用基于c o p 沿a & d c o m 和w e b 数据库的中间件( 组件) 技术,将数 据库服务器中存储的海量商业数据通过中间件的衔接提供给w e b 服务器,商业用 9 山东大学硕士学位论文 户使用浏览器或其他专业应用软件通过w e b 服务器提供的多种服务,远程登录访 问来获取w e b 服务器上提供的数据服务,并应用人工智能领域的d s s 、e s 和数据 仓库技术等分析获取大量的商业数据之间隐含的复杂关系,从而帮助制定商业决 策扪。 在过去的1 0 年中,电子商务迅速占领了上万亿美金的市场份额,将成为2 1 世纪人类信息世界的核心,也是计算机应用的研究热点。除了互联网公司和电子 商务企业之外,许多传统企业也通过i t 技术实现了与自己的客户和合作伙伴的 端到端连接及基于w e b 的商业模式“1 。 网上购物系统随着电子商务的发展而迅速在互联网上广泛应用,其迅速、 高效和低成本的优点为企业提高了工作效率和经济效益。网上购物系统正成为许 多传统商业企业改变自己经营模式的一个平台;在网上购物平台上,企业可以找 到新的利润增长点 1 2 研究意义 由于电子商务与信息技术的迅速发展,实现了在线购物和交易的电子商务 网站变得越来越受欢迎。同时电子商务网站具有商务形式多变、竞争激烈导致开 发成本要求下降等特点,而传统的w e b 应用开发技术在页面表示与业务逻辑分 离、组件重用、层次化开发技术等方面很欠缺,应用系统开发人员使用这些技术 已不能满足需要。他们迫切地需要一种先进的平乞技术,用较少的资金和资源来 设计、建立和生产具有较高可重用性、可扩展性的电子商务网站。 在这种情况下,基于j 2 e e ( j a v a2e n t e r p r i s ee d it i o n ) 平台的s t r u t s h i b e r n a t e 构架的w e b 应用应运而生,它通过应用服务器端组件的形式,封装了 业务处理逻辑,提高了程序的可重用性和可扩展性。 1 3 研究内容 本文在具体研究和分析j 2 e e 平台技术的基础上,运用j 2 e e 平台技术改进 传统技术在开发方面的不足,实现了页面表示与业务逻辑分离、组件重用、层次 化开发、统一的架构控制等传统技术难以达到的效果。根据现实需要,设计与实 现了以销售电脑设备以及i t 产曙为主的购物网站嘲。 l o 山东大学硕士学位论文 在系统设计中,利用j s p 语言和标签技术实现页面表示与业务逻辑分离;利 用j a v a b e a n 和自定义标签技术实现组件重用;利用s t r u t s 应用框架改进m v c 模 式,实现层次化开发;利用h i b e r n a t e 技术,实现对数据存储层的访问;利用基 于j 2 e e 平台技术的s t r u t s 应用框架,以s e r v l e t 为中心控制器,实现统的框 架控制。本文着重对系统中的核心模块购物车作了具体的设计和分析,以体现 j 2 e e 平台技术如何改进传统技术的不足本文根据系统设计,实现了一个小型的b t oc 网络商店系统。该系统实现了用户在线浏览、选择商品,并通过下订单的 形式订购。测试结果表明该系统使用简单、运行正常稳定,能较好的实现网上购 物这一功能。 1 4 论文结构 本文完成了在线购物网站的开发工作,包括系统需求分析,系统概要分析, 系统详细分析,系统设计和部分模块的编码和测试工作,并对系统涉及的主要技 术进行了相应的分析。本文的具体结构安摔如下: 第一章绪论,简单介绍了研究背景,研究意义以及研究内容和论文的结构。 第二章w e b 应用体系结构和实现技术,是在线购物网站相关理论和技术的介 绍。 第三章网上购物系统的需求分析,主要介绍系统需求分析,功能概要设计和 各子模块功能的简要描述。 第四章网上购物系统的设计,包括系统的体系架构设计、相关类的设计、数 据库设计与实现。 第五章网上购物系统的实现,包括相关类的实现,工作流程实现,表示层和 界面的实现。 第六章技术难点详解。 第七章总结与展望,对所做的网站开发做了总结,指出了存在的不足之处, 提出了以后需要进一步完善的工作。 山东大学硕士学位论文 第2 章w e b 应用体系结构和实现技术 2 1w e b 应用体系结构 2 1 1c s 体系结构 c s 模式是一种两层结构的系统,第一层是在客户机上处理表示逻辑与业务 逻辑,第二层则是通过网络运行的数据库等服务器系统。它是软件系统体系结构, 通过它可以充分利用两端硬件环境的优势,将任务合理分配到c l i e n t 端和 s e r v e r 端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是 c l i e n t s e r v e r 形式的两层结构,由于现在的软件应用系统正在向分布式的w e b 应用发展,w e b 和c l i e n t s e r v e r 应用都可以进行同样的业务处理,应用不同的 j 模块共享逻辑组件:因此,内部的和外部的用户都可以访问新的和现有的应用系 统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系 统的发展方向。 c s 模式将事务分开进行处理,实现了网络的分布式计算,很长时间里也帮 助企业实现了局域网建设,完善了企业内部业务管理,提高了工作效率。然而 c s 模式在系统的集成与维护、操作界面一致性、系统的扩展性等方面都存在明 显的局限性,所以就像主机终端式网络被c s 模式的网络系统所取代一样,在 i n t e r n e t i n t r a n e t 技术环境里,也会出现更新的系统模式。 2 i 2b s 体系结构 b s 结构( b r o w s e r s e r v e r 结构) 结构即浏览器和服务器结构。它是随着 i n t e r n e t 技术的兴起,是对c s 结构的一种变化或者改进的结构。在这种结构 下,用户工作界面是通过嗍浏览器来实现,极少部分事务逻辑在前端( b r o w s e r ) 实现,主要事务逻辑是在服务器端( s e r v e r ) 实现,形成所谓三层3 - t i e r 结构。 这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降 低了用户的总体成本( t c o ) 。特别是在j a v a 这样的跨平台语言出现之后,b i s 架 构管理软件更是方便、快捷、高效。 典型的b s 结构属于三层体系结构,它把应用分解为三个不同的逻辑层次, 各有一套定义好的接口。三层结构把用户接口、应用逻辑、数据分开,大大提高 山东大学硕士学位论文 量曼曼曼ii i ii - - i。ijjii_ - 囊 了设计应用的灵活性。 b s 结构使数据及应用可通过不同平台、不同网络存取,与平台无关,伸缩 性大,为企业提供了开放的标准的综合性计算环境。b s 集成了c s 的优点,把 c s 模式的服务器端进一步深化,分解成w e b 服务器和数据库服务器,同时简化 了客户端,仅保留表示功能,将其计算功能移至应用服务器,从而形成了由表示 层、业务逻辑层、数据服务层构成的典型的三层分布式结构。表示层为用户提供 人机交互界面,所有的数据录入、显示操作都在此完成,当用户需要进行数据交 换时,是不允许直接访问数据库服务器,而是通过业务逻辑层提供的接口进行访 问,这样保证了后台数据的安全性,同时实现了真正意义上的瘦客户;业务逻辑 层负责对输入的数据按照业务逻辑进行加工处理,并实现对数据库服务器的访 问;数据服务层包含应用程序需要的数据,为应用提供数据来源,保证数据的低 冗余、结构性、完整性和一致性。b s 三层体系结构如图2 - 1 所示。 表示层业务逻辑层 数据层 图2 - ib s 三层体系结 哿 b s 结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软 件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易, 只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。 2 2j 2 e e 概述 本文主要分析和实现的是一个基于s t r u t s 框架的应用,而s t r u t s 是基于 g v c 设计模式,符合j 2 e e 规范的一种开源框架,所以首先有必要介绍一下j 2 e e , m v c 设计模式和s t r u t s 的相关知识旧哪:正是由于1 2 e e 平台的推出和发展,才 产生了s t r u t s 框架,可以说如果没有j 2 e e 平台,就不会有现在的g v c 模式嗍。 2 2 f1j 2 e e 的概念 1 3 山东大学硕士学位论文 目前,j a v a2 平台有3 个版本,它们是适用于小型设备和智能卡的j a v a2 平台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 娅) 、适用于桌面系统的 j a v a2 平台标准版国1 ( 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 a2 平台企业版( j a v a2p l a t f o r me n t e r p r i s e e d i t i o n ,j 2 e e ) 。 j 2 e e 是s u n 公司提出的一种分布式企业级应用开发的技术架构。从整体上 讲,j 2 e e 是使用j a v a 技术开发企业级应用的一种事实上的工业标准,它是j a v a 技术不断适应和促进企业级应用过程中的产物。s u n 推出j 2 e e 的目的是为了克 服传统c s 模式的弊病,迎合b s 架构的潮流,为应用j a v a 技术开发服务器端 应用提供一个独立的、可移植的、多用户的、安全的和基于标准的企业级平台, 从而简化企业应用的开发、管理和部署。j 2 e e 并非一个产品,而是一系列的标 准,符合这个标准的产品叫“实现。j 2 e e 可以说是j a v a 在数据库信息系统上 实现,主要是指b s 结构的实现。 2 2 2j 2 旺的优势 j 2 e e 不仅巩固了标准版中的许多优点,例如“编写一次、随处运行一的特 性、方便存取数据库的j d b c m p i ,c o r b a 技术,以及能够在i n t e r n e t 应用中保 护数据的安全模式等,同时还提供了对e j b ,j s p 及x m l 技术的全面支持。其最 终目的就是成为一个能够使企业开发者大幅度缩短投放市场时间的体系结构。 其优势主要是为搭建具有可伸缩性、灵活性、易维护性的业务系统提供了良 好的机制,具体优势如下: 1 j 2 e e 是由s u n 引导,各厂商共同发起的,并得到广泛认可的业界标准, 因此它拥有良好的市场和旺盛的生命力。 2 j 2 e e 具有良好的开放性和可移植性,j 2 e e 平台的产品几乎能够在任何操 作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用,并可适应未 来的变化。 3 j 2 e e 可缩短系统开发时间,j 2 e e 允许公司把一些通用的、很繁琐的服务 端任务交给中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻 辑上,相应地缩短了开发时间。 4 支持分布式计算、支持多种终端。 1 4 山东大学硕士学位论文 2 3 基于j 2 e e 的w e b 应用框架 框架是为了支持企业在软件开发方面的需求,提供给开发人员使用的一个基 础平台。它提供了一整套预制的软件构架,能够为开发者所使用、扩展及定制以 满足特定的业务需求。它有以下特点: 1 框架是一些软件系统的全部或部分可再使用的设计,是由一组类及他们的 实例交互的方式组成。 2 框架是一个应用系统的骨架,可由系统开发者自己定制。 3 框架是一个可再使用、近似完成的应用系统,可根据特定需求产生客户要 求的应用系统。 如今,j 2 e e 平台已经日趋成熟,并得到广泛的应用。在j 2 e e 技术中发展最 迅猛的当属j a v as e r v e rp a g e 技术。几乎所有的基于j a v a 的w e b 应用都使用 j s p 。一些开放源代码的j s p s e r v l e t 容器n 们,如a p a c h e 软件组织提供的t o m c a t , 更进一步推动了j s p 技术的发展。随着j s p 技术的成熟,越来越多的开发人员开 始使用w e b 应用框架。框架为w e b 应用提供了预备的软件架构和相关的软件包, 它大大提高了开发w e b 应用的速度和效率。 2 4i i v c 设计模式 2 4 1 设计模式 地上本没有路,走得人多了也就成了路。设计模式如同此理,它是经验的传 承,并非体系;是被前人发现,经过总结形成了一套某一类问题的一般性解决方 案,而不是被设计出来的定性规则;它不像算法那样可以照搬照用。设计模式的 基础是面向对象,它的提出,是面向对象程序设计演化过程中的一个重要里程碑。 建筑设计师c h r i s t o p h e ra l e x a n d e r 对模式的定义有如下概括:“每一个模 式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。 这样,你就能一次又一次地使用该方案而不必作重复劳动。 上述的定义是对模 式的广义定义。尽管a l e x a n d e r 所指的是城市和建筑模式但他的思想也同样适 用于面向对象设计模式( d e s i g np a t t e r n ) ,两类模式的核心都在于提供了相关 问题的解决方案。我们将其应用到面向对象软件的领域内,就形成了对设计模式 的狭义定义。 山东大学硕士学位论文 我们可以简单地认为,设计模式就是在某种特定的场景( c o n t e x t ) 下,某个 不断重复出现的特定的面向对象软件问题的解决方案。然而实际的设计过程中, 设计人员更多的考虑如何解决业务问题,对于软件内部结构考虑较少:设计模式 则补充了这个缺陷,它主要考虑如何减少对象之间的依赖性,降低耦合程度,使 得系统更易于扩展,提高了对象可复用性。因此,设计人员正确的使用设计模式 就可以优化系统内部的结构m 1 。 2 4 2 w e b 应用系统开发的一般模型 2 4 2 1 d e l l 模式 模式l 就是指j s p + j a v a b e a n 技术。在模式l 中,j s p 页面独自响应请求并 将处理结果返回给用户所有的数据通过b e a n 来处理,j s p 实现页面的表现。 模式l 技术实现了页面的表现和页面的商业逻辑相分离。这种模式对于小型 的系统还可以满足,但是对于大规模的系统就会显得力不从心,那就是会导致在 页面里嵌入大量的j a v a 控制代码,当要处理的业务逻辑复杂时,大量的内嵌代 码使得页面变得庞大,同时也非常复杂。模式l 的结构如图2 - 2 所示:n 习 图2 2 模式l 2 4 2 2i l o d o l 2 模式 针对模型1 的众多问题,s i n 又提出了模型2 。 模型2 就是指j s p + s e r v l e t + j a v a b e a n 技术,它的主要思想是使用一个或多 个s e r v l e t 作为控制器。请求由前沿的s e r v l e t 接受并处理后,会重新定向到 j s p 。在s e r v l e t 作为控制器时,每个s e r v l e t 通常只实现很少的一部分功能。 多个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 通信的中间工具。s e r v l e t 处理完后 1 6 山东大学硕士学位论文 设置a e a n 的属性。j s p 读取此b e a n 的属性,然后进行显示。此模式更加明显地 把显示和逻辑分离,使得代码比模式1 容易管理,适合大型项目的开发。模式2 的结构如图2 - 3 所示: w 髓塞薯 、 ,r - * 奎 、 数据库 1 客户请求 _ 一一一一、i 客 s e n ,- e l 户 端 |l 一 l 浏 览 嚣r 一l l 一一一l i 3 】i 一一一 结果返回 。 2 4 3m v c 设计模式 2 4 3 1 科c 的由来 图2 - 3 模式2 k e c 是m o d e l v i e w - c o n t r o l l e r 的简称,即模型一视图一控制器。m v c 是一种 软件设计模式,最初是为s m a l l t a l k - 8 0 语言提出的,后来在j s p 开发中渐渐得 到广泛的应用至今已被广泛使用,最近几年被推荐为s u n 公司j 2 e e 平台的设计 模式n ,受到越来越多的w e b 开发者的欢迎。 在早期的j a v a 研究应用中,j s p 文件负责业务逻辑、控制网页流程并创建 l t z m l 。j s p 文件是一个独立的、自主完成所有任务的模块、这给w e b 开发带来一 系列问题:n 铂 1 h t b 肛, 代码和j a v a 程序强耦合在一起,j s p 文件的编写者必须既是网页设 计者,又是j a v a 开发者。但实际情况是,多数w e b 开发人员要么只精通网页设 计,能够设计出漂亮的网页外观,但是编写的j a v a 代码很糟糕:要么仅熟悉j a v a 编程,能够编写健壮的j a v a 代码,但是设计的网页外观很难看。两种技能都很 熟悉的人可谓是凤毛麟角,非常少见。 2 逻辑流程内嵌 要理解应用程序的整个流程,必须测览所有网页,如果仅是几个或者十几个 网页还好说,几十个网页乃至上百个网页时,网站的逻辑错综复杂,理解困难。 1 7 山东大学硕士学位论文 l ! p , i i 3 调试困难 s e r v l e t 技术是j a v a 创建w e b 应用程序的主要基础设施。j s p 技术也是以 s e r v l e t 技术为基础的,它进一步扩充了s e r v l e t ,简化了h t m l 内容的创建。在 应用中,j s p 和s e r v l e t 还存在着一定的不足。这些不足主要存在于两个领域: ( 1 ) 创建一种“关注点分离 。做不同事情的代码块被分别打包在不同的组件 中,并且基于标准的方式在它们之间进行通信。 ( 2 ) w e b 应用程序的一个基础设施。这些基础设施包括验证用户输入、处理 和报告错误以及管理控制流,等等。如果这些不足能够得以弥补,构建研究应用 程序最实际的问题( 健壮性、可维护性、本地化等) 就更容易解决。 2 4 3 2 设计思想 h v c ,就是被称为模型一视图一控制器设计模式的组织原则。它强制性地把应 用程序的输入、处理和输出分开。h v c 把应用程序分成三个核心模块:模型、视 图和控制器,它们分别担负不同的任务。m v c 模式结构如下图2 - 4 所示: 1 3 囝 捌童墅 歙誓撇闯 戤掘持久 i 槐圈 捏示输出 i 舅睡囊嚣用户尊皇入 l ,空请列零 葶r 毂白 教擗转接 拱! 制城 至 i 用户 i 图2 4i l v c 结构图 山东大学硕士学位论文 i,- m 量曼量曼曼曼曼量量量曼量鼍曼量量量皇曼喜皇曼曼皇皇曼量鼍鼍量暑量量皇基誉 1 视图( v i e w ) 处理数据如何展现给用户的代码视图是用户看到并与之交互的界面。视图向 用户显示相关的数据。并能接收用户的输入数据,但是它并不进行任何实际的业 务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发 出的数据更新事件,从而对用户界面进行同步更新n 5 1 。 2 模型( m o d e l ) 控制数据访问和持久性的代码模型是应用程序的主体部分。模型表示业务数 据和业务逻辑。一个模型能为多个视图提供数据,由于同一个模型可以被多个视 图重用,所以提高了应用的可重用性。 3 控制器( c o n t r o lle r ) 处理模型和视图之间的数据流向和转换问题,代码控制器接受用户的输入并 调用模型和视图去完成用户的需求。当w e b 用户单击w e b 页面中的提交按钮来发 送h t m l 表单时,控制器接收请求并调用相应的模型组件去处理请求。然后调用 相应的视图来显示模型返回的数据。 4 m v c 处理过程 现在来总结m v c 处理过程。首先控制器接收用户的请求,并决定应该调用哪 个模型来处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据; 最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。 2 4 3 3m v c 的优点 在最初的j s p 网页中,像数据库查询语句这样的数据层代码和像h l l l l 这样 的表示层代码混在一起。经验比较丰富的开发者会将数据从表示层分离开来,但 这通常不是很容易做到的,它需要精心地计划和不断地尝试。m v c 从根本上强制 性地将它们分开。尽管构造m v c 应用程序需要一些额外的工作,但是它带来的好 处是毋庸置疑的n 唰 首先,多个视图能共享一个模型。如今,同一个w e b 应用程序会提供多种用 户界面,例如,用户希望既能通过浏览器来收发电子邮件,还能通过手机来访问 电子邮箱,这就要求w e b 网站同时提供i n t e r n e t 界面和w a p 界面。在m v c 设计 模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现 给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大 1 9 山东大学硕士学位论文 提高了代码的可重用性。 其次,模型是自包含的,与控制器和视图保持相对独立,所以可以方便地改 变应用程序、数据层和业务规则。如果把数据库从m y s o l 移植到o r a c l e ,或者 把r d b i 随s 数据源改变成l i ) a p 数据源,只需改变模型即可。一旦正确地实现了模 型,不管数据来自数据库还是l d a p 服务器,视图都会正确地显示它们。 此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来连接不 同的模型和视图去完成用户的需求,也可以为构造应用程序提供强有力的手段。 给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进行 处理,然后选择适当的视图将处理结果显示绘用户 1 8 o 2 5s t r u t s 框架 2 5 1s t r u t s 概述 框架( f r a m e w o r k ) 是可重用的,半完成的应用程序,可以用来产生专门的 定制程序 您只要细心地研究真实的应用程序,就会发现程序大致上由两类性质不同的 组件组成,一类与程序要处理的具体事务密切相关,我们不妨把它们叫做业务组 件;另一类是应用服务。比如说:一个税务征管系统和一个图书管理系统会在处 理它们的业务方面存在很大的差异,这些直接处理业务的组件由于业务性质的不 同不大可能在不同的系统中重用,而另一些组件如决定程序流向的控制、输入的 校验、错误处理及标签库等这些只与程序相关的组件在不同的系统中可以很好地 得到重用人们自然会想要是把这些在不同应用程序中有共性的一些东西抽取出 来,做成一个半成品程序,这样的半成品就是所谓的程序框架,再做一个新的东 西时就不必白手起家,而是可以在这个基础上开始搭建。实际上,有些大型软件 企业选择自己搭建这样的框架。但大多数中小型软件企业或者其他组织,没有条 件自己建立框架。 s t r u t s 作为一个开放源代码的应用框架,在最近几年得到了飞速的发展, 在j s pw e b 应用开发中应用得非常广泛,有的文献上说它已经成为j s pw e b 应用 框架的事实上的标准。那么,究竟什么是s t r u t s 呢? 要回答这个问题还得从j s pw e b 应用的两种基本的结构模式:m o d e ll 和 山东大学硕士学位论文 m o d e l2 说起。 从前面分析得知:m o d e ll 是个以j s p 文件为中心的模式,在这种模式中 j s p 页面不仅负责表现逻辑,也负责控制逻辑。专业书籍上称之为逻辑耦合在页 面中,这种处理方式,对一些规模很小的项目,也没什么太大的坏处,实际上, 人们开始接触一些对自己来说是新的东西的时候,比如,用j s p 访问数据库时, 往往喜欢别人能提供一个包含这一切的单个j s p 页面,因为这样在一个页面上他 就可以把握全局,便于理解。但是,用m o d e ll 模式开发大型项目时,程序流向 由一些互相能够感知的页面决定,当页面很多时要清楚地把握其流向将是很复杂 的事情,当您修改一页时可能会影响相关的很多页面,大有牵一发而动全身的感 觉,使得程序的修改与维护变得异常困难;还有个问题就是程序逻辑开发与页 面设计纠缠在一起,既不便于分工合作也不利于代码的重用,这样的程序其健壮 性和可伸缩性都不好。 为了克服m o d e ll 的缺陷,人们引入了m o d e l2 模式。 它引入了一控制器这个概念,控制器一般由s e r v l e t 来担任,客户端的请 求不再直接送给一个处理业务逻辑的j s e 页面,而是送给这个控制器,再由控制 器根据具体的请求调用不同的事务逻辑,并将处理结果返回到合适的页面。因此, 这个s e r v l e t 控制器为应用程序提供了一个进行前一后端处理的中枢。一方面为。 输入数据的验证、身份认证、日志及实现国际化编程提供了一个合适的切入点; 另一方面也提供了将业务逻辑从j s p 文件剥离的可能。业务逻辑从j s p 页面分离 后,j s v 文件蜕变成一个单纯完成显示任务的东西,这就是常说的v i e w 而独立 出来的事务逻辑变成人们常说的m o d e l ,再加上控制器c o n t r o l 本身,就构成了 m v c 模式。实践证明,埘c 模式为大型程序的开发及维护提供了巨大的便利。 正如上面所提到的m v c 是一种模式,当然可以有各种不同的具体实现,包括 您自己就可以实现一个体现m v c 思想的程序框架,s t r u t s 就是一种具体实现m v c 思想的程序框架。 2 5 2s t r u t s 的体系结构 s t r u t s 的大致结构如图2 - 5 所示: 2 l 山东大学硕士学位论文 图2 5s t r u t s 结构图 图2 - 5 基本勾勒出了一个基于s t r u t s 的应用程序的结构,从左到右,分别 是表示层( v i e w ) 、控制层( c o n t r o l l e r ) 、和模型层( m o d e l ) 。其表示层使用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 接收( a c t i o n s e r v l e ts t r u t s 已经为我们写好了,只要您应用没有什 么特别的要求,它基本上都能满足您的要求) ,根据接收的请求参数和s t r u t s 配 置( s t r u t s - c o n f i 舀m 1 ) 中a c t i o n a a p p i n g ,将请求送给合适的a c t i o n 去处理, 解决由谁做的问题,它们共同构成s t r u t s 的控制器。a c t i o n 则是s t r u t s 应用 中真正干活的组件,开发人员一般都要在这里耗费大量的时间,它解决的是做什 么的问题,它通过调用需要的业务组件( 模型) 来完成应用的业务,业务组件解 决的是如何做的问题,并将执行的结果返回一个代表所需的描绘响应的j s p ( 或 a c t i o n ) 的a c t i o n f 唧d 对象给a c t i o n s e r v l e t 以将响应呈现给客户。 z5 3 为什么要使用$ t t u t s 框架 既然自己可以建这种框架,为什么要使用s t r u t s 呢? 首先,它是建立在m v c 这种公认的好的模式上的,s t r u t s 在m 、v 和c 上都有涉及,但它主要是提供一 个好的控制器和一套定制的标签库上,也就是说它的着力点在c 和v 上,因此, 它天生就有m v c 所带来的一系列优点,如:结构层次分明,高可重用性,增加了 程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校 验、国际化、日志等等:其次,它是个开源项目得到了包括它的发明者c r a i g r m c c l a n a h a n 在内的一些程序大师和高手持续而细心的呵护,并且经受了实战 的检验,使其功能越来越强大,体系也日臻完善;最后,是它对其他技术和框架 显示出很好的融合性。如,现在,它已经与t i l e s 融为一体,可以展望,它很
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园防盗抢安全知识培训课件
- 法语面试题目答案
- 培训考试测试题及答案
- 教育宣传考试题及答案
- 校园安全知识培训课件的困惑
- java面试题及答案ip段地名
- 沈海高速考试试题及答案
- 货币自考试题及答案
- 猪场检疫面试题及答案
- 导诊文员笔试题及答案
- 学堂在线 庄子哲学导读 章节测试答案
- 厂内搬运工安全知识培训
- 买辆摩托艇运营合同范本
- 保管员业务知识培训课件小结
- 2025年总工会招聘考试工会知识模拟试卷及答案
- 2025年桥式起重机理论考试试题及答案
- 人教版(2024)九年级全一册物理21.1 电磁波的海洋 教案
- b2学法减分考试题库及答案解析
- 无忧传媒培训课件
- 2023-2024学年贵州省遵义市绥阳县八年级上学期期中数学试题及答案
- 90MW风电场项目建议书(参考)
评论
0/150
提交评论