基于MVC模式的Rails框架研究.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于MVC模式的Rails框架研究.pdf》由会员分享,可在线阅读,更多相关《基于MVC模式的Rails框架研究.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2 3 卷 第 2 期 计 算 机 仿 真 2 0 0 6 年2 月 文章编号:1 0 0 6 9 3 4 8(2 0 0 6)0 2 0 2 7 00 5 基于 MVC模式 的 Ra i l s 框架研究 周迅飞,王毙声 (中国航天工程咨询中心,北京,1 0 0 0 3 7)摘要:随着 We b应用的普遍以及需求的多样化,其结构和内容越来越复杂,设计开发也越来越困难,开发者迫切需要能简化 开发过程,降低开发难度的框架,现有的 We b 应用框架却都不尽如人意,最近兴起的R a i l s 则是极大地响应了这种需求的一 个 We b 应用框架。首先简要介绍 M V C 设计模式,分析当前J
2、a v a 平台上各种We b 应用开发框架的不足,然后详细论述R a i l s 框 架的各种特性、核心体系结构以及关键技术,结合实例讲述运用 R a i l s 进行 W e b 应用开发的过程。以该框架为基础构建 We b 应用系统,缩短开发周期,降低开发代价,在迅速开发和部署 We b 应用方面体现了强大的优势。关键词:网络应用;模型;视图;控制器;模式;框架 中图分类号:T P 3 9 3 文献标识码:A An a l y s i s o f W e b Ap p l i c a t i o n Fr a me wo r k Ra i l s Ba s e d o n M VC Pa
3、 t t e r n ZHOU Xu n f e i WANG Ka n s h e n g (C A E C C,B e i j i n g 1 0 0 0 3 7,C h i n a)ABS TRACT:Al o n g w i t h t h e p o p u l a r i z a t i o n o f we b a p p l i c a t i o n,t h e r e q u i r e me n t s o f we b a p p l i c a t i o n a r e v a r y i n g,i t s s t r u c t u r e a n d c o
4、n t e n t a r e c o mp l i c a t e d,a n d i t S mo r e d i f f i c u l t t o d e s i g n a n d d e v e l o p i t De v e l o p e r s a r e i n n e e d o f a we b a p p l i c a t i o n f r a me w o r k wi t h c o n v e n i e n c e t o s i mp l i f y t h e p r o c e s s a n d r e d u c e t h e d i f f
5、 i c u l t y o f d e v e l o p me n t,w h i c h w e b a p p l i c a t i o n f r a me wo r k s i n e x i s t e n c e c a n t p r o v i e d Ho we v e r,t h e n e w f r a me wo r k Ra fts me e t s t h e n e e d T h e p a p e r i n t r o d u c e s t h e MVC d e s i g n p a t t e r n a n d a n a l y s e
6、s t h e d i s a d v a n t a g e s o f w e b a p p l i c a t i o n f r a me wo r k s o n J a v a p l a t f o r m,a n d t h e n i n t r o d u c e s a n d a n a l y s e s w e b a p p l i c a t i o n F r a me wo r k Ra i l s,e x p l o r e s i t s f e a t u r e s,k e r n e l a r c h i t e c t u r e,k e y
7、 t e c h n o l o g i e s,i l l u s t r a t e s t h e p r o c e s s o f d e v e l o p i n g we b a p p l i c a t i o n u s i n g Ra i l s wi t h e x a mp l e s B a s e d o n t h i s f r a me wo r k,t h e We b a p p l i c a t i o n c a n b e c o n s t r u c t e d a n d d e p l o y e d q u i c k l y a
8、n d e x p e d i e n t l y a t l o w c o s t,wh i c h i s t h e g r e a t e s t a d v a n t a g e o f Fr a me wo r k Ra i l s KEYW ORDS:We b a p p l i c a t i o n;Mo d e l;Vi e w;Co n t r o l l e r;De s i g n p a t t e r n;F r a me w o r k l 引言 J 2 E E由于所具有的开放性、跨平 台性而在 We h应用开 发平台中的地位如1 3 中天,在该平台上各种各
9、样的开发框架 层出不穷,但这些框架普遍有开发效率不高,应用程序配置 文件庞大复杂且难于管理的缺点。在这样的背景下,用 R u b y 语言编写基于 MV C模式的R a i l s 框架以其开发快捷、简单易 用的特点极大地简化了开发过程,降低开发成本,并 同时较 好地兼顾开发、运行效率,近来逐渐成为 We b应用开发者关 注的焦点。收稿日 期:2 0 0 51 1 1 7 -27 0-2 背景简介 2 1 MVC模式 MV C是三个单词的缩写,分别为:模 型(M o d e 1),视 图(V i e w)和控制(C o n t r o l l e r)。MVC模式的目的就是实现 We b 系统
10、的职能分工。视图(M o d e 1)层实现系统 中的业务逻辑;视 图(V i e w)层用 于与用 户 的交 互;C o n t r o l l e r层 是模 型(M o d e 1)与视图(V i e w)之间沟通的桥梁,它分派用户的请求 并选择相应的视图(V i e w)用于显示,同时它也解释用户的 输入并将输入映射为模型(Mo d e 1)层可执行的操作。在 MV C 模式 中,三层各司其职,如果哪一层需求发生变化。也只需更 改相应的层的代码而不会影响到其它层的代码,有利于组件 的重用。维普资讯 http:/ 2 2 Ru b y 语言 R u b y是松本行弘“Ma t z”(Ma
11、 t s u m o t o Y u k i h i r o)发明的 一种功能强大的面向对象的脚本语言,该语言语法简单,文 本处理能力强,并具有 自动垃圾回收、可移植性强、动态载入 等优点,还有异常处理以及迭代器等构造,与另一使用极广 的脚本语言P e r l 不相伯仲,可以用来方便快捷地进行面向对 象编程。2 3 当前主要 We b框架 在J 2 E E平台基于 MV C模式目前比较优秀的 MV C框架 中,出现早的有 S t r u t s、We b w o r k,新兴 的则有 S p r i n g MV C、T a p e s t r y、J S F(J a v a S e r v
12、e r F a c e s)等。这些框架都提供 了非常 好的层次分隔能力,并在实现良好的 MV C分隔的基础上,提 供许多现成的辅助类库,促进开发效率的提高。S t r u t s 可以说是 目前 J a v a We b MV C框架中最稳定、成熟 的,而且可扩展性和可配置性强。We b w o r k结构简单易于扩 展,标签库易于定制。S p r i n g MV C更加开放、清晰、全面、高 效,它使 简单组 件经 配置 能组合 成 复杂 的应用。J S F和 T a p e s t ry都是基于组件的事件驱动模型类的成熟框架。以上 框架各具优点,却都存在没有提供简单的使用方式的缺点,需要
13、使用大量的X M L文件进行配置管理,而正是在框架的 易用性上,R a i l s 提供了“一站式”面向用户简单易用的框架,这正是众多J a v a We b框架所缺乏的。3 Ra i l s 框架 3 1 介绍 R a i l s 是一个较新的 We b应用程序框架,它是用 R u b y 语 言编写的全栈(f u l l s t a c k)、开源的 We b 框架。全栈包括:We b 服务器(WE B r i c k)、处理 H T T P请求和响应,以及将数 据持久存储到关系数据库的框架。与通常只能完成 We b 应用 程序某一特定方面需求的J a v a 框架相比(如 S t r u
14、 t s 本身没有 自己的数据持久层),R a i l s 包含了非常完整的一套工具。易用性是 R a i l s 最显著的特征,也正是这点将 R a i l s与 众多 J a v a框架区分开来,并达到了 We b框架设计上的一次 突破。R a i l s 极高的开发效率得益于其简洁易用的设计语 言 R u b y 以及贯穿 R a i l s 框架设计始终的“习惯约定优于配置(C o n v e t i o n o v e r C o n f i g u r a t i o n)”和“编写更少的代码(L e s s c o d e)”思想。用 R a i l s 来开发We b 应用,所
15、需编写的全部代码 可能比大多数框架中的X ML配置文件还要少。简而言之,R a i l s通过消除复杂的 X ML配置文件,使用 R u b y 语言动态性质,帮助把静态类型语言中常见重复代码 减少到最少,使开发工作变得更容易,为 We b 应用程序开发 提供了一条易行道。3 2 体系结构 R a i l s 框架主要包括以下两部分:I)A c t i o n P a c k:包 含 M V C模 式 中视 图(V i e w)层 A c t i o n V i e w和控制(C o n t r o l l e r)层 A c t i o n C o n t r o l 两部分的实 现,其中控
16、制(C o n t r o l l e r)层部分处理从客户浏览器到达的 请求并将请求转至控制类相应的方法;视图(V i e w)层使用 模板系统返回结果页面,类似 A S P和 J S P。R a i l s采用和 S t r u t s 等框架不同的映射方式。它不依赖配 置文件把请求映射到某一个动作,砥是 球 U R L查拽适当的 _ !l l i l l_ A c t i o n 弧U R L 地 址h t t p:&|。“-1 o c a l h o s t b o o k l i s t。R a i l s 将 I b k映 扩展电 如 !一 畸 h C o n t r o l l
17、e r t B a s e Bo o k C o n t r o l l e r|_ l 一 类 见匿、丽,h 吼 呔|_|B o o k C o n t r o l l e r 类的 l i s t 方法,即调 用 B o o k C o n t r 0 1 1 e r 的l i s t 方法。同样 图l 控 制 器 类 的如果在 B o o k C。n t r。1 1 e r 类中定义 B。k c o n 。扩 展 了 fi n d方法,那么只要用 fi n d替 A 。“c。:B 代 U R L地址中的 l i s t,就能调用 fi n d方法。R a i l s 的 D i s p
18、a t c h S e r v l e t 是前端控制器模式的例子,它接 受 H T T P请求,解析 U R L,把请求转发给适当的 A c t i o n。对于 R a i l s 框架,A c t i o n 即是扩展 自A c t i o n C o n t r o l l e r 的类的一个方 法。在R a i l s 中A c t i o n 用来充当前端控制器和模型(Mo d e 1)之 间的桥梁。前端控制器负责接受请求,并把请求传递到特定 A c t i o n,而在 A c t i o n中调用模型(Mo d e 1)类进行各类数据操 作。图2 演示了 R a i l s 框
19、架 A c t i o n的基本运作原理:厂 r _ _ _ r 厂 I L 盔 一 i 越 一】L t 篮:L:0 _ _ J匕-一 一 一-_ I 图2 H T T P请求处理过程 2)A c t i v e R e c o r d:R a i l s框架 OR M(O b j e c tr e l a t i o n a l M a p p i n g 对象关系映射)层的实现部分,M 舶 州:s B 处理从关系数据库表到运行时(R u n t i m e)I。_ 模 型 对 象的自 动映 射,即 为M V C 中 的 一:o M(M。d e 1)。A c t i v e R e c o
20、r d包装数据库表或视图 一 0 中数据行的对象,封装数据库访 问过程。一 一 _ 在 R a i l s中,每个模型类都要扩展提供基 本 C R U D(C r e a t e R e a d U p d a t e D e l e t e,增 图 3 模 型 类 查 改 删)操 作 的基 类 A c t i v e R e c o r d:B o o k扩展 A c t i o n B a s e(见图 3)。与 H i b e r n a t e不同,A c t i v e R 。d:B R e c o r d不需要 映射文件,也 不需要对模 型类的 g e t t e r或 一2 71
21、 维普资讯 http:/ s e t t e r、甚至类属性进行编码。通过词汇分析,A c ti v e R e c o r d 能自动将扩展自A c t i o n R e c o r d:B a s e的 B o o k类映射到数据 库中的 b o o k s 表,通过使用 R u b y 语言中的反射和元编程的组 合,数据库表 b o o k s 的列也相应变成 B o o k类实例对象的属 性。3 3 关键技术 3 3 1 Ac t i o n P a c k 1)U R L地址路由(R o u t i n g)传人的 U R L 会由 C o n t r o l l e r 映射至某
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MVC 模式 Rails 框架 研究
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内