(计算机应用技术专业论文)基于aspnetmvc框架的web应用开发研究.pdf_第1页
(计算机应用技术专业论文)基于aspnetmvc框架的web应用开发研究.pdf_第2页
(计算机应用技术专业论文)基于aspnetmvc框架的web应用开发研究.pdf_第3页
(计算机应用技术专业论文)基于aspnetmvc框架的web应用开发研究.pdf_第4页
(计算机应用技术专业论文)基于aspnetmvc框架的web应用开发研究.pdf_第5页
已阅读5页,还剩94页未读 继续免费阅读

(计算机应用技术专业论文)基于aspnetmvc框架的web应用开发研究.pdf.pdf 免费下载

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

文档简介

华东师范大学硕士学位论文 t h e s i s0 fm a s t e r - sd e g r e ei n2 0 11 s c h lc o d e :10 2 6 9 n o :6 5 0 6 0 112 0 0 5 e a s tc h i n an o r m a l u n i v e r si t y r e s e a r c ha n di m p l e m e n t a t i o no fw e b s y s t e ma p p l i c a t i o nb a s e d o na s p n e tm v c d e p a n m e n t q 堡p 旦! 星! s i 堡垒鱼曼垒卫鱼堡垒h 堕q ! q g y m a j o r q 堡p 坠! 皇! p p i i 堡垒! i q n 壁曼h 堕q ! q g y r e s e a r c hi n t e r e s t s q 鱼塑垒! 曼墅鱼h 旦q ! q g y a d v i s o r l 江a s t e rc a n d i d a t e e 垒n g 坠 f u l 6 e di nd e c 2 0 l o i 华东师范大学硕士学位论文 华东师范大学学位论文原创性声明 郑重声明:本人呈交的学位论文基于a s p n e tm v c 框架的w 曲应用开 发研究,是在华东师范大学攻读硬壬博士( 请勾选) 学位期间,在导师的指导 下进行的研究工作及取得的研究成果。除文中已经注明引用的内容外,本论文不 包含其他个人已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人 和集体,均已在文中作了明确说明并表示谢意。 、 作者签名:_ 二2 丘匦卜一 日期:k 年量月哆日 华东师范大学学位论文著作权使用声明 基于a s p m 玎m v c 框架的w 曲应用开发研究系本人在华东师范大学 攻读学位期间在导师指导下完成的砚生博士( 请勾选) 学位论文,本论文的研 究成果归华东师范大学所有。本人同意华东师范大学根据相关规定保留和使用此 学位论文,并向主管部门和相关机构如国家图书馆、中信所和“知网 送交学位 论文的印刷版和电子版;允许学位论文进入华东师范大学图书馆及数据库被查 阅、借阅;同意学校将学位论文加入全国博士、硕士学位论文共建单位数据库进 行检索,将学位论文的标题和摘要汇编出版,采用影印、缩印或者其它方式合理 复制学位论文。 本学位论文属于( 请勾选) ( ) 1 经华东师范大学相关部门审查核定的“内部 或“涉密 学位论文掌, 年月日解密,解密后适用上述授权。 2 不保密,适用上述授权。 导师签名碟蠹溺、 本人签名- 二2 牛 、 , 砌? 年 月) ;日 “涉密”学位论文应是已经华东师范大学学位评定委员会办公室或保密委员会审定 过的学位论文( 需附获批的华东师范大学研究生申请学位论文“涉密”审批表方 为有效) ,未经上述部门审定的学位论文均为公开学位论文。此声明栏不填写的,默认 为公开学位论文,均适用上述授权) 。 华东师范大学硕士学位论文 - 、 - 阿 乃彳h i 硕士学位论文答辩委员会成员名单 姓名职称单位备注 陈强璋教授上海商学院主席 张卫教授华东师范大学 王新伟副教授华东师范大学 沈富可副教授华东师范大学 朱敏高工华东师范大学 m 华东师范大学硕士学位论文 摘要 随着i i l t e m e t 的快速增长,互联网已经对各行各业以及我们的工作和生活产 生了深远的影响,许多传统的信息和数据库系统正在被移植到互联网上。随着 w 曲应用的越来越广泛,系统变得越来越复杂,越来越重要,而w e b 开发技术 也成为各厂商、程序员、用户关注的重点。 早期a s p 、p h p 等混合编码的开发方式,产生了大量“意大利面条 式的代 码,其数据处理、程序功能和显示代码等部分完全交错混杂,严重降低了程序的 可扩展性,增加了程序开发与维护的难度【1 】。随着开发技术的发展,m v c 模式 作为复合模式的代表之作,其含义和作用变得日渐广泛,已被普遍应用于大中小 型面向对象系统的软件设计中,为此,m o d e l 2 、r u b y0 nr a i l s 等框架大行其道, 微软也不失时机的推出了基于n e t 平台的a s p :m 玎m v c 框架。 a s p :m 玎m v c 框架是在借鉴了m v c 设计模式优点的基础上,在w 曲f 0 珊s 开发方式之外向开发人员提供的另一种替代解决方案,一个能帮助开发人员更快 更好的搭建w e b 应用系统的框架,是一个更加严谨,更易规范化的框架, a s p n e tm v c 框架是一个更能“约束开发人员的框架,更能“强迫 开发人 员按照一种“更优架构”进行思考【2 】。 论文选取了一个基于巳t 传统w 曲f 0 姗s 开发方式开发完成的实际项目,在 分析了传统n e tw 曲f 0 m s 开发方式不足和造成当前系统一系列亟待解决的问 题的基础上使用a s p n e tm v c 框架对原有系统重新进行开发,对将a - s p n e t m v c 框架如何应用于企业级实际项目开发进行了深入的探讨,解决了一系列实 际开发中所遇到的问题,给出了a s p m 玎m v c 框架在实际应用中的解决方案以 及实施过程,并且在开发过程中将a s p - 卜订三tm v c 框架与传统w e b f o 珊s 开发方 式进行对比。最后通过分析对比,给出了a s p m 玎m v c 框架在系统构建、层次 划分、用户体验、单元测试支持等方面的具体特点分析。 具体的实践开发表明a s p m 玎m v c 框架确实能在改善系统架构的清晰性、 提高系统的扩展性、增强前台页面的可控性、提升系统的可测试性等方面给予开 发人员强大的支持,但难以避免的也存在一些缺点和不足。当然,a s p m 玎m v c 框架还在不断的改进和完善,还有很多问题需要在实践中不断探索。相信论文的 工作能为w e b 开发人员在开发技术以及框架选择等方面提供很好的参考价值。 关键词:a sp - n e tm v c ,a s p :m 玎,m v c ,w e b 应用开发 e x p 卸d a b i l i t ya n di n c r e a s et h ed i f f i c u l t yo fp r o 伊a md e v e l o p m e n ta i l dm a i n t e n 柚c e 【1 】 w i t ht h ed e v e l o p m e n to ft e c h n o l o g y ,m v cp a t t e m 弱m a 印u mo p u so fc o m p o u n d p a t t e m ,i t sm e a n i n g 强df u n c t i o nb e c o m e si n c r e a s i n 舀yw i d e s p r e a da i l di th 弱b e e n w i d e l y 印p l i e dt ol 鹕c 、s m a l la n dm e d i u m - s i z e do b j e c t - o r i e n t e ds y s t e ms 0 f t w a r c d e s i 印s o ,m o d e l 2 、r u b yo nr a i l sp r o p a g a t ei t sb e l i e fo nal a f g es c a l e m i c r o s o f t l o s e sn ot i m ei nr e l e a s i n ga s p n e tm v ca tt h eb a s eo f n e ,l a s p n e tm v cw h i c ha b s o r bt h em e r i to fm v c p r 0 v i d e 觚o t h e fs u b s t i t u t ep l a n e x c e p tw 曲f o 加s ,w h i c hc 姐b em o r ef a s t e r 锄d b e t t e rt oc o n s t n l c tw e ba p p l y i n g s y s t e ms t m c t l l f ea l l dw h i c hi sa l e sm o r ep r e c i s e n e s s 加de a s i e rs t a n d a r d i z a t i o n i t i sm o r es u i t a b l et or e s t r i c td e v e l o p e r sa l l dc o m p e l t h e mt h i n l 【i n ga c c d r d i n gt o ”b e t t e r s t n l c t u r e t h ep a p e rs e l e c tap r a c t i c ep r o j e c tw h i c hi sc o m p l e t e dt h r o u 曲t r a d i t i o n a l w e b f 0 m s 咖t h eb a s eo f m 珥w h i c hi sr e d e v e l o p e d b yu s i n ga s p m tm v c l o fi ti sb 弱e d0 n 锄a l y z i n gt h ei n s u f f i c i e n to ft r a d i t i o n a ld e v e l o p i n gw a yw h i c hc a u as e r i e so fp r o b l e m i td e e p l yd i s c i l s sh o wc a l lm v cb eu s e da tp r a c t i c ep r q e c t 锄d r e s o l v ea l lp r o b l e m s i tp r o v i d e ss c h e m e 如dp r o c e s so fu s i n ga s 只m e tm v c a n di t c o n t r a s tt h eb o t hd u r i n gt h ep r o c e s s f i n a l l y ,t h r o u g h 锄a l y z i n gt h er c s u l t ,i t 沓v e st h e s p e c i f i cf e a t u r eo fs y s t e ms t m c t u r e 、h i e r a r c h i c a ld i v i s i o n 、u s e re x p e r i e n c e 、u n i tt e s t s u p p o na n ds 00 n m a t e r i a lp m c t i c e ss h o wt h a ts i n c ea s p n e tm v ch 弱s om a n ys t r o n gp o i n t si ti s h a r dt oa v o i dw e a kp o i n t s s u r l y ,a s p m 玎m v ci sn o wp e r p e t u a l l yp r 0 v i n g 柚d p e r f e c t i n g ib e l i e v et h a tm yp a p e rm a yh a v ev e r y9 0 0 dr c f e r e n c ev a i u ef o rw e b d e v e l o p e r so nt e c l l l l i q u e 孤d m c t u r ec h o i c e k b y w b r d s :a s p :m 玎m v c ,a s p n e t ,m v c ,i i i l p l e m e n t a t i o no fw 曲 2 1 1m v c 设计模式简介1 0 2 1 2m v c 设计思想1 1 2 1 3m v c 的优点 2 1 4m v c 的不足1 2 2 2a s p :n e t 1 3 2 2 1m i c r 0 s 0 f t n e t 框架简介1 3 2 2 2a s p :m 玎技术简介1 4 2 2 3a s p n l t 工作原理及运行机制1 4 2 2 4 a s p :n e t 特点及优势1 6 2 3u n q 技术及特点1 7 2 3 1u n 0 概j 盎1 7 2 3 2u n q1 ds q l 技术特点 2 4a j a x 技术及特点1 8 2 4 1a j 觚概述 2 4 2a j 戤技术特点1 9 第三章a s p n e tm v c 框架分析2 l 3 1a s p n e tm v c 简介2 1 3 1 1a s p m e tm v c 框架的产生和发展2 1 3 2 路由和u r l 2 2 3 2 1 路由选择与u r l 重写。2 3 3 2 2 默认路由表2 3 3 2 3 路由约束。 3 2 4u r l 成生算法工作原理2 7 3 3 控制器( c o n t r o l l e f ) 。2 9 3 3 1 控制器概述2 9 3 3 2a c t i o n r e s u l t 3 0 3 4 视图( e w ) :3 1 3 5a s p n e tm v c 框架中的a a x 3 3 3 6 过滤器( f i l t e r ) 3 6 j 1 1 4 4 6 7 7 8 o 0 1 1 第五章总结与展望。7 4 参考文献7 5 j 改谢7 8 附录攻读学位期间发表的学术论文目录。7 9 竹约钉轮钳钳辑钙拍钞如钇甾弱趵岱回为竹记 ( 1 ) 更加开放的客户端环境:由于客户端仅使用浏览器,无需任何配置, 所以用户可以透明地访问各种异构环境中的计算机资源。 ( 2 ) 更加便利的软件维护和升级:在传统的c s 模式下,无论是软件维护 还是升级都需要客户端重新安装与配置,而基于b s 模式的软件系统升级和维护 主要是在服务器端完成,客户端通常无需作任何修改。 ( 3 ) 统一的用户界面风格:b s 模式下的软件系统使用更加简单,用户更加 容易接受,用户培训的人力及费用支出也可以大大减少。 但即使如此,当前基于b s 模式的应用软件的开发仍受多种因素制约,其主 要表现在: ( 1 ) b s 应用程序开发受h t t p 网络协议限制。 由于h 1 曙协议的无状态的,基于b s 的应用程序在网络间采用哪协议 传输数据时,应用程序的状态管理会变得非常复杂,并且客户端与服务器的交互 只能采用“请求响应 模式使得界面交互变得复杂。 ( 2 ) m m l 语言功能简单,无法满足企业级应用。 在b s 模式下,无论是多么复杂的应用,最终都只能以h t m l 文本的格式部 署,而h r m l 是w 3 c 组织在2 0 世纪9 0 年代制定的标准,其支持的功能相对简 单,无法满足复杂多样的w 曲应用需要,特别是难以进行大型企业级的应用开 发。 ( 3 ) m o d e l l 开发模式已经不能满足用户多变的需求。 m o d e u 开发模式采用j s p 、a s p 等技术,页面显示和业务逻辑的处理主要依 靠内嵌业务逻辑或者调用其他组件来完成,随着需求的复杂度提升,m o d e u 模 1 华东师范大学硕士学位论文 式使应用程序的开发和维护都变得越来越困难。 随着计算机软件技术的不断发展,一方面是用户对于操作界面的友好性、实 用性等要求越来越高,另一方面是在实际开发过程中,用户需求频繁的改变要求 应用系统不断的更新和完善。在这种情况下,原来基于m o d e l l 模型的b s 开发 方法已经不能适应当前的开发要求。在传统的m o d e u 模型开发模式下,显示页 面文件里包含了大量涉及业务逻辑的代码。对于这样的系统,首先来讲页面的复 用率很低,由于相同的页面由于业务逻辑不同,所以最多只能实现代码级的复用; 其次,当用户对页面的需求有所变化时,往往需要对核心业务代码进行修改,对 于一些企业级应用系统,核心业务代码的修改常常会影响到整个业务逻辑,从而 严重影响到开发的成本以及开发的效率。更严重的是,需求的频繁变化很容易造 成对核心代码不断修改,最终导致系统瘫痪,使开发工作无法继续进行。 为了改善m o d e l l 模型中被开发人员诟病的这些问题,微软在2 0 0 0 年推出 a s p :n e t ,a s p :m 玎是一项具有划时代意义的w 曲开发技术,它独创的 w 曲f o 咖、c o d e b e h i n d ( 代码隐藏) 技术和大量的服务器端控件大大简化了w e b 应用系统开发,开发人员可以参照创建w i n d o w s 应用程序中的经验,快速开发 一个w 曲应用程序。这种快速开发方式对于很多开发人员来说,降低了学习的 门槛,可以很快地上手。因此对于小型的应用来说,a s p m 玎确实提高了开发 效率。但是,a s p 加t 仍然是以页面为中心的w 曲编程模型,开发人员常常在 页面的代码隐藏页中写入大量的事件处理、业务逻辑、数据库访问代码,给系统 带来了页面和业务逻辑的紧耦合,降低了系统的可用性,也非常不利于系统后期 的扩展和维护。 而在传统的w 曲开发领域,为了克服m o d e l l 开发模型的带来的种种问题, 开发人员正在尝试将桌面应用系统中的图形用户界面设计的框架技术( 如e t + + 、 m f c 等) 应用到w 曲应用系统的开发中。特别是在j a v a 开源社区,正在寻求一 种新的设计,目的是能够使w 曲层结构能够像中间层组件一样可维护、可测试 和可重用,应用于s m a l l l a l k 的m v c ( m o d e l e w c o n t r o l l e r ) 设计模式很好地解 决了这个问题,m v c 模式实现了表示层与业务逻辑层的分离,于是一些j a v a 开 源社区将m v c 设计模式运用到j a v aw 曲开发中,并且已经实现了一些请求驱动 方式的w 曲m v c 框架,比较知名的有:s t l l l t s 、w 曲w r o r k s 和s p r i n gw 西m v c 2 华东师范大学硕士学位论文 等。 w 曲m v c 框架规范了j 2 e ew 曲层开发,这样使得大量w 曲应用程序开始 采用j 2 e e 平台。为了扭转这种局面,微软在2 0 0 8 年推出了a sp n e tm v c 框架, a s p n e tm v c 框架借鉴了m v c 设计模式的优点,将模型( m o d e l ) 、视图( e w ) 、 控制器( c o n t r o l l e r ) 引入开发模型,并综合采用一系列主流开发技术的优点, 例如a c t i o nf i l t e r 、a o p ( a s p e c to r i e n t e dp r o g r a m m j n g ,面向方面编程) 、a j a x 技术等。a s p n e tm v c 框架能有效的分离稳定的和易变的代码,使数据、业务 和表现之间层次分明、结构清晰,降低层与层这间的依赖,提高模块的复用程度, 并且有助于进行干净的测试和t d d ,a s p n i 汀m v c 框架的w 曲应用系统具有 如下优点: ( 1 ) m v c 模式为应用系统提供了清晰的结构层次,m v c 模式强制性的将 应用程序分为模型、视图和控制器三个部分,使数据、呈现和业务之间的层次分 明,降低了各层次之间的依赖,提高了层次间的逻辑复用。 ( 2 ) m v c 模式的层次模型可以使开发人员更关注于某一个层次的开发工 作,有利于并行开发的推进,从而提高了开发效率。 ( 3 ) a s p n e tm v c 框架为测试驱动开发( t c s t d r i v e nd e v e l o p m e n t ,t d d ) 、 模拟对象,单元测试提供了更好的支持。t d d 先写测试程序然后再编码使其通 过测试,在测试的保护下通过去除冗余和重复的代码提高代码重用性,为软件质 量提供了有利的保障。 ( 4 ) a s p 加玎m v c 框架为第三方w 曲应用程序提供了良好的支持,并能 够对应用程序的行为提供更高层次的控制,包括与客户端j a v 弱c r i p t 框架集成( 如 j q u e 叭e x t j s 等) ,提高可视化效果以及人机交互的友好度。 但a s p n e tm v c 框架自2 0 0 8 推出以来,在短时间内经历了多个版本的演 进和不断的完善扩展,目前大部开发人员对于这一新的开发框架的应用探索还比 较少,特别是还很少应用于实际项目开发当中。本文将深入a s p 玎m v c 框架 的工作原理及技术特点,并选取了一个实际项目对其进行实践开发探索。在使用 a s p m 玎m v c 框架进行实践开发过程中,重点关注了a s p n e tm v c 框架关于 模型、视图、控制器、过滤器、可测试性和a x 应尸等方面的内容,将努力实 现系统任务、模块更好的分离,提高系统的可扩展性和可测试性,并希望对 3 华东师范大学硕士学位论文 a s p 巳tm v c 框架应用开发的效果进行对比和评定,为w e b 开发人员在开发 技术以及框架选择上提供一些参考。 1 2 当前领域的研究现状 1 2 1w e b 应用开发技术的发展和趋势 随着h l t e m e t 技术的广泛使用,w 曲技术越来越广泛的应用于i i i t e m e t 上,而 最早期的w 曲应用全部是静态的h ,r m l 页面,仅仅用于将一些文本信息呈现给 浏览者,这些信息都是固定写在h t m l 页面里的,页面本身不具备与用户交互 的能力,也没有动态显示的功能。 逐渐地,开发人员希望w 曲应用里能够包含一些能够动态执行的内容,最早 的c g i ( 通用网关接口) 技术满足了这一要求,c g i 技术可以从数据库读取信息, 并将这些信息呈现给用户,还可以获取用户的请求参数:并将这些参数保存到数 据库里。c g i 技术使w r e b 应用获得了与客户端浏览器交互的基本能力,开启了 动态w 曲应用的时代。但c g i 技术在使用和开发方面难度比较大,而且在性能 等方面也存在限制。到1 9 9 7 年时,随着j a v a 语言的广泛使用,s e l e t 技术迅速 成为动态w r e b 应用的主要开发技术。相比传统的c g i 应用而言,s e r v l e t 具有很 多优势:首先,s e r v l e t 是基于j a v a 语言创建的,而j a v a 语言内建了多线程支持, 这一点大大提高了动态w r c b 应用的性能。其次,s e l e t 应用可以充分利用j a v a 语言的优势,例如j d b c ( j a v ad a t a b a s ec o 皿e c t i o n ) 等。同时,j a v a 语言提供 了丰富的类库,以上这些都简化了s e r v l e t 的开发。 除此之外,s e r v l e t 运行在w 曲服务器中,由w 曲服务器去负责管理s e r 、,l e t 的实例化,并对客户端提供多线程、网络通信等功能,这都保证s e r v l e t 有更好 的稳定性和性能。s e l e t 在w 曲应用中被映射成一个u r l ( 统一资源定位) , 该u r l 可以被客户端浏览器请求,当用户向指定u r l 对应的s e r v l e t 发送请求 时,该请求被w 曲服务器接收到,该w 曲服务器负责处理多线程、网络通信等 功能,而s e l e t 的内容则决定了服务器对客户端的响应内容。 实际上,这是后来所有的动态w 曲编程技术所使用的模型,这种模型都需要 4 华东师范大学硕士学位论文 一个动态的程序,或者一个动态页面,当客户端向该动态程序或动态页面发送请 求时,w 曲服务器会根据该动态程序来生成对客户端的响应。 到了1 9 9 8 年,微软发布了a s p2 0 。它是w i n d o w sn t4o p t i o np a c k 的一部 分,作为i i s4 0 的外接式附件【7 1 。它与a s p1 o 的主要区别在于它的外部组件 是可以初始化的,这样,在a s p 程序内部的所有组件都有了独立的内存空间, 并可以进行事务处理。标志着a s p 技术开始真正成为动态w | e b 编程技术之一。 a s p 技术以s c r i p t 作为脚本语言,语法简单,开发效率非常高,迅速的被广 大的开发人员所接受并推广开来。随后,由s u n 带领的j a v a 阵营,立即发布了 j s p 标准,从某种程度上来看,j s p 是j a v a 阵营为了对抗a s p 推出的一种动态 w 曲编程技术。j s p 虽然从名称上来讲和a s p 有很大的相似性,但它们的运行 机制存在较大的差别,这主要是因为s c r i p t 是一种脚本语言,无需编译,而 j s p 使用j a v a 作为脚本语句,在运行之前必须编译成s e r v l e t ,这就是说,j s p 的 实质还是s e l e t 。但是,编写j s p 比编写s e r v l e t 简单得多。 随着w 曲应用的使用范围越来越广,应用规模越来越大,开发人员逐渐发现 其维护的成本也越来越高,即使是仅仅需要修改页面中的一段提示文字,也需要 打开多种代码混杂的页面源文件进行修改,这些操作给整个系统带来了巨大的风 险。 逐渐的,开发人员认识到单纯的依赖a s p 或者j s p 是不恰当的,随后j a v a 阵营发布了一套完整的企业开发规范:j 2 e e ( 现在已经更名为j a v ae e ) ,紧接 着微软也发布了a s p - n e t 技术,它们都采用特有的优秀的分层思想,力图解决 w | e b 应用在维护、扩展方面遇到的问题。在此期间j a v a 阵营逐渐从传统的m o d e l l 模型过渡到了m o d c l 2 模式,m o d e l 2 模式引入了m v c 的思想,在m o d e l2 架构 中,s e r 、,l e t 作为前端控制器,负责接收客户端发送的请求,在s e l e t 中只包含 控制逻辑和简单的前端处理;然后,调用后端j a v a b e 锄来完成实际的逻辑处理; 最后,转发到相应的j s p 页面处理显示逻辑。由于引入了m v c 模式,使m o d e l 2 模式具有组件化的特点,更适用于大规模应用的开发,但同时增加了应用开发的 复杂程度。 5 华东师范大学硕士学位论文 1 2 2 现有m v c 框架 m v c 模式经过长时间的发展,涌现出了许多优秀的框架,其中影响比较大 的有以下一些: ( 1 ) m o n o r a i l m o n o r a i l 原名为c a s t l eo nr a i l s ,是基于m 玎平台一个m v cw 曲开发框架, 它原先是c a s t l e p r o j e c t 的一子项目。作者h a m m e t t 在借鉴r u b yo nr a i l s 的基础 上,使用m 玎实现了一个c a s t l eo nr a i l s 。m o n o r a i l 的核心是a c t i o np a c k 在如玎 上的实现,这种方式高效、直观而且易于测试。m o n o r a i l 框架与w 曲f o 姗s 开 发方式的不同之处在于,c a s t l e m o n o r a i l f r 锄e 、釉r k m o n o r a i l h t t p h a n d l e r 将接 管所有访问请求,然后根据请求的u r l 创建相应的c o n t r o l l e r ,c 0 n t f o l l e r 再调 用相应的a c t i o n ,最后调用视图模板输出内容。 ( 2 ) s t r u t s s t m t s 最早是作为a p a c h ej a k a n a 开源项目的一个组成部分。s t n l t s 框架的主 要架构设计和开发者是c r a i g r m c c l 锄a l l 雒。和其它j a v a 架构一样,s t m t s 也是 面向对象设计,s t m t s 的核心是一个具有弹性的控制层,基于j a v as e r v l e t s , j a v a b e a n s ,r e s o u r c e b u n d l e s 与x m l 等标准技术,以及j a k a r t ac o m m o n s 的一些 类库。s t r i l t s 由一组相互协作的类、组件、s e r v l e t 以及j s pt a g1 i b 组成。基于s t n l t s 构架的w e b 应用程序基本上符合了j s pm o d e l 2 的设计标准,可以说是一个传统 m v c 设计模式的变化类型。s t m t s 是当前最流、应用最广泛的m v c 开源框架之 一o ( 3 ) s p r i n g s 州n g 于2 0 0 4 年3 月发布,是由r o dj o h n s o n 创建的一个开源m v c 框架, s p r i n g 主要目的是解决企业级应用开发的复杂性,它关注于j 2 e e 应用各层的解 决方案,而不是仅仅专注于某一层的方案。可以说s p r i n g 是企业级应用开发的 “一站式 选择,并贯穿表现层、业务层及持久层。然而,s p r i n g 并不想取代那 些已有的框架,而是希望与它们无缝地整合。s p 血g 使用基本的j a v a b e a n 来完 成以前只可能由e j b 完成的事情。而且,s p 血g 的用途不仅限于服务器端的开发。 从简单性、可测试性和松耦合的角度而言,任何j a v a 应用都可以从s p r i n g 中受 益。 6 华东师范大学硕士学位论文 ( 4 ) 。i a p e s t r ) r 1 a p e s t 巧是一个用j a v a 写成的,基于组件的网络程序框架。1 a p e s 仃y 并不是 一种单纯的m v c 框架,它更像m v c 框架和模板技术的结合,它不仅包含了前 端的m v c 框架,还包含了一种视图层的模板技术,使用t a p e s t r y 完全可以与 s e r v l e 们s pa p l 分离,是一种非常优秀的设计。通过使用1 a p e s 仃y ,开发者完全 不需要使用j s p 技术,用户只需要使用t a p e s t r y 提供的模板技术即可,t a p e s t 巧 实现了视图逻辑和业务逻辑的彻底分离。 1 2 3a s e n e tm v c 框架的发展与研究现状 目前以j a v a 技术为基础的b s 架构领域已经出现了各种各样的标准以及现成 的框架。其中最有代表性的s t m t s 是应用特别广泛的一种表现层框架。它通过采 用s e l e t 和j s p 技术,实现j a v aw r c b 应用的m v c 应用框架,是m v c 应用中 的一个经典产品。 而以m 玎技术为基础的b s 架构领域一直没有比较通用和成熟的m v c 框 架,导致很多软件开发人员和企业放弃了n e t 技术优势转而投向了j a v a ,但同 时,s t m t s 也只是一个轻量级的框架,其中有些功能有限而有些功能起来过于复 杂而应用较少。许多在各大企业应用的时候依然需要对其进行改造或者在其基础 上构建适合自己系统的框架。 而2 0 0 8 年a s p m e tm v c 框架的发布是继推出a s e m e t 后的又一次积极的 尝试和探索,a s p :n l 玎m v c 框架仍然使用m 订作为基础平台,但更重视纯净 架构的实现,设计模式的运用和可测试的能力,加上n e t 平台的坚强支持和其 它技术优势,可以想见,a s p :n l 玎m v c 框架的应用前景是光明的,并能得到广 泛的普及。但是a s p m 玎m v c 框架仍在快速版本更替和完善扩展中,大部分开 发人员对其仍然是在测试的探索中,还很少真正将其应用到实际项目开发当中 来。 1 3 论文的主要工作和内容 a s p m 玎m v c 框架在原先a s p n l 玎平台技术特性的基础上整合了m v c 设 计模式,使系统结构更加清晰,具有高度的扩展性、可插拔性和可测试性。本文 7 华东师范大学硕士学位论文 在深入分析了a s p :m 玎m v c 框架的实现原理和技术特点后,将a s e n e tm v c 应用于实际项目的开发实践当中,做出了一些有益的尝试。 , 本文的主要工作和内容如下: 一、对m v c 设计模式作了详细的介绍,研究了它的三个组成部分及其工作 原理,接下来对其基础平台如玎平台进行了分析。 二、深入分析了a s p :m 玎m v c 框架的工作原理和技术特点。 三、将a s p m 玎m v c 框架应用于实际项目的系统的开发过程中,并解决了 一系列实际开发中所遇到问题,给出了a s p m 玎m v c 框架在实际应用中的解决 方案以及实施过程, 四、在开发过程中分析对比了a s p m 玎m v c 的特点和优势,并依据实际开 华东师范大学硕士学位论文 出一些建议,并对未来进行展望。 最后包括了参考文献和附录。 9 华东师范大学硕士学位论文 第二章关键技术介绍与分析 2 1m v c 设计模式 2 1 1m v c 设计模式简介 m v c ( m o d e l e w c o n t r o l l e r ) 模式是一种目前广泛流行的设计模式,它是 t r y g v er e e n s k a u g 在二十世纪七十年代末为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 的简称,即模型视图控制器。m o d e l e w c o n t r o l l e r ( m v c ) 模式基于用户输入将域的建模、显示和操作分成三个独立的类: ( 1 ) 模型( m o d e l ) :模型是m v c 架构应用程序的主体部分,它主要表示 应用程序中的数据和业务规则部分。模型为视图提供已经处理完成的结果数据, 并且模型可以为多个视图提供数据。 ( 2 ) 视图( v i e w ) :视图是用户看到并与之交互的界面。视图负责接收从模 型层传递过来的数据,根据用户的要求进行相应的格式化并进行显示,在视图中 不包含任何业务处理代码,对于视图来讲,它只提供一个输出数据和用户可以操 作的界面。 ( 3 ) 控制器( c o n t r 0 1 ) :控制器负责按受用户的输入和请求,并调用适当的 模型和视图来完成用户的需求。它只负责模型与视图之间的交互,控制对用户输 入的响应方式和流程。一方面将用户的请求分发到相应的模型上去处理,另一方 面将模型返回的结果和模型的改变反映到相应的视图上。 m v c 模式是一种架构模式,目的主要是通过强制性的将系统的输入、处理 与输出分离,实现系统清晰的职能分工。模型层负责实现系统中的数据处理以及 业务逻辑部分。视图层负责与用户之间的交互,其中包括数据的呈现和为用户提 供可以接受输入的界面。控制器层是模型层与视图层之间沟通的桥梁,它负责解 释用户的输入并将它们分发到模型层进行相应的操作,然后选择适当的视图进行 数据的显示。 1 0 m v c 即把一个应用的输入、处理、输出流程按照m o d e l 、e w 、c o n t r o l l e r 的方式进行分离,这样一个应用被分成三个层:模型、视图、控制器,其关系如 图2 1 所示: 视图( v i e w ) 代表与用户交互的界面,对于w 曲应用来讲,视图通常指m m l 界面。在m v c 模式中,视图负责数据的呈现和提供一个与用户进行交互的界面, 与传统的开发不同,它不负责任何业务流程的处理部分,比如,视图会从模型中 接收已经处理完毕的数据并按照用户的要求进行显示,在此过程中,视图还可能 接收用户的输入或其它请求并传递给模型,这中间需要控制器起到桥梁的作用。 模型( m o d e l ) 是m v c 模式的核心部分,主要负责业务逻辑处理,模型会接收 从视图传递过来的用户的输入或其它请求,进行相应的处理后,将最终的结果通 过控制器返回给相应的视图,对于视图层和控制器层来讲,这些处理过程都是黑 箱操作。但这里需要注意的是m v c 模式并没有说明如何将模型恰当的抽取出来, 或者说m v c 模式并没有提供模型的具体设计方法,另外,数据的持久化也是一 个重要的问题,所以建立一个持久化的数据模型和分离出系统中的模型层是应用 m v c 模式的核心问题。 控制器( c 0 n t r o l l e r ) 主要负责从用户接收请求,并将这些请求分发到相应的漠 型中,然后选择适当的视图将返回的结果展示给用户,控制器是沟通模型与视图 华东师范大学硕士学位论文 的桥梁,模型和视图会在控制器的统一调度下共同完成用户的请求。在应用系统 中,控制器不会做任何与业务逻辑相关的数据处理。 2 1 3m v c 的优点 首先,模型是被多个视图共享的,m v c 设计模式中的模型负责按照请求返 回相应的数据,视图负责格式化这些数据并把它们呈现给用户,数据和呈现之间 的分离提高了模型层代码的重用性和可移植性。 其次,m v c 中的模型、视图与控制器都是相对独立的,它们之间层次分明、 结构清晰,这种松耦合的特性可以使开发人员和设计人员关注于特定层,有助于 企业级应用中的并行开发,可以大大的提高效率,也为系统中后期的可扩展性、 可维护性带来了极大的便利。 此外,m v c 中的控制器负责控制业务对象完成相应的请求,从模型层获取 数据并指定相应的视图进行数据的呈现,甚至还可以在运行期间进行各个对象之 间的替换,这种强大的控制手段大大提高了应用程序的灵活性和可配置性。 2 1 4m v c 的不足 m v c 的不足体现在以下几个方面: ( 1 ) m v c 模式的应用将会增加系统结构以及应用实现的复杂性,特别是对 于一些较为简单的应用来讲,m v c 模式严格的要求模型、控制器与视图的分离, 会大大的增加系统结构的复杂性,也必然带来更多的交互操作,这样对于系统的 运行效率有所影响。 ( 2 ) m v c 在理论上要求视图与控制器的完全分离,但实事上视图与控制器 之间的交互必然要求二者之间存在一定程度上的紧密关系,这在很大程度上限制 了他们之间的独立重用。 ( 3 ) m v c 模式中视图与模型的完全分离,由于设计上接口不同,大部分情 况下,视图的完整显示都需要与模型进行多次的交互,其中必然有一些冗余的数 据访问部分,也在一定程序上影响了系统的性能。 ( 4 ) 当前成熟的m v c 框架还很少,在实际开发中应片m v c 模式需要开发 人员在设计和实现过程中付出大量的精力,在m v c 模式的应用上带上了不小的 1 2 2 2a sp - n e t 2 2 1m i c r o s o f t n e t 框架简介 m i c r o s o f t n e t 是微软公司为摆脱传统软件发展的束缚,针对未来互联网推 出的战略架构,它囊括了几乎所有微软产品的升级换代,其目的是使网络应用程 序和网络服务的开发更加简便快捷。 m i c m s o r n e t 是一个开发和执行环境,便于开发基于w 曲的服务,拥有丰 富的运

温馨提示

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

评论

0/150

提交评论