(计算机应用技术专业论文)基于ajax的web应用技术的研究与实现.pdf_第1页
(计算机应用技术专业论文)基于ajax的web应用技术的研究与实现.pdf_第2页
(计算机应用技术专业论文)基于ajax的web应用技术的研究与实现.pdf_第3页
(计算机应用技术专业论文)基于ajax的web应用技术的研究与实现.pdf_第4页
(计算机应用技术专业论文)基于ajax的web应用技术的研究与实现.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(计算机应用技术专业论文)基于ajax的web应用技术的研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 c s ( 客户端服务器) 应用程序,是从二十世纪九十年代随着w i n d o w s 的 出现和客户端处理能力的增强而出现的应用程序,它采用图形用户界面,客户 端的数据处理能力比较强。具有强大的数据操作和事物处理能力。但是随着应 用程序的复杂程度不断提高,c ,s 架构存在部署成本高、客户端应用程序更新、 维护困难等问题。由于c ,s 架构的种种弊端,九十年代中期,互联网飞速发展, 出现了b s ( 浏览器服务器) 应用程序,w e b 的广泛使用解决了c s 应用程序 部署、更新的困难。但是b s 应用程序受制于h t m l 的限制,无法像c s 那样 使用丰富的效果来展示数据,用户体验比较糟糕。此时一种被称为砒c hh l t 啪e t a p p l i c a t i o n ( 简称r i a ,中文翻译作”丰富互联网应用程序”) 的具高度互动性和 丰富用户体验的网络应用程序出现了。 刚a 实际上是一种基于w 曲的d s 架构。由于有一个客户端,所以融a 应 用可以提供强大的功能,让用户体验到高交互性,高用户体验。同时,剐魄又 是基于h l t e m e t 浏览器的应用,所以,用户使用r 认非常方便。a i a x 则是一种 目前得到广泛认可的瑚魄技术。 本文首先论述w 曲应用技术的发展,并根据w 曲应用技术的发展特点,针 对目前w 曲技术存在的问题,对r i a 应用及a j a 】( 技术做了简单的分析。 其次,论文针对qa ) ( 技术进行深入全面的分析研究,通过对实现笱a x 的 四项关键技术及其在a j a x 实现中所起的作用的分析,提出了一个简单的a j a x 技术框架,该框架实现了a j a x 的技术原理中所说的几个基本步骤。随后讨论了 在w c b 应用中引入a ja ) ( 技术所可能带来的安全问 x g i v e st h es o l u t i o n st ot h ep r o b l e m s s ot h e r eg e tt h ef o u rb a s i cc h a r a c t e r so f t h ea j a xt e c h n i q u e l a s t l y ,a tt h ed e s i g ns t a g eo ft h ec i d ae d u c a t i o na s s i s t a n tf l a t ,t h et h e s i s a n a l y z e sm ec h a n g e so ft h es y s t e m 丘a m ew h i c hr e s u n sf r o mi m p o r c i n ga j a x t e c h n i q u ei n t ow e bd e v e l o p m e n ta n di m p l e m e n t sa j a x 印p l i c a t i o n a tt h e s a m et i m e ,a i m e da tt h er e p r e s e n t a t i v eu s e rm a n a g e m e n tp r o b l e m si nt h e s y s t e m ,t h et h e s i sa c h i e v e sa ni n t e g r a t es 0 1 u t i o nb a s e do nt h er b a ca n d c o m b i n e dt h es y s t e mr e q u i r e m e n t s k e y w o r d s :a ja ) ( ,r n ,u s e re x p e r i e n c e ,m v c ,d e s i g nm o d e s i i i 第1 章引言 1 1研究背景和意义 c s ( 客户端,服务器) 应用程序,是从二十世纪九十年代随着w i n d o w s 的 出现和客户端处理能力的增强而出现的应用程序,它采用图形用户界面,客户 端的数据处理能力比较强,具有强大的数据操作和事物处理能力。但是随着应 用程序的复杂程度不断提高,c ,s 架构存在部署成本高、客户端应用程序更新 困难等问题。 由于c s 架构的种种弊端,九十年代中期,互联网飞速发展,出现了b s ( 浏览器朋匣务器) 应用程序,w e b 的广泛使用解决了c s 应用程序部署、和更 新的困难。但是b ,s 应用程序受制于h r m l 的限制,无法像c ,s 那样使用丰富 的效果来展示数据,用户体验比较糟糕。随着w e b 应用程序复杂性越来越高, 传统的w e b 应用程序已经渐渐不能满足w e b 浏览者更高的、全方位的体验要 求了,这就是被m a c r o m e d i a 公司称之为的”体验问题”( e x p 蕊e n c em a t t e r s ”) 。 此时一种被称为r j c hi n t e m c ta p p l i c a t i o n ( 简称剐 a ,中文翻译作”丰富互联网 应中文翻译作”丰富互联网应用程序”) 的具高度互动性和丰富用户体验的网络 应用程序出现了。 r i a ( 础c hi n t e m e ta p p i i c a t i o n ) 的提出,为大家指明了一个方向。“黜c h 代表功能强大,高交互性,高用户体验。能e m e f 代表方便。应用程序部署方 便,用户使用方便。其实灿实际上一种基于w 曲的c s 架构。由于有一个客 户端,所以础渔应用可以提供强大的功能,让用户体验到高交互性,高用户体 验a 同时,r n 又是基于h l t e m e l 浏览器的应用,所以,用户使用砒a 非常方 便。理想来说,用户使用r i a 应当像现在使用普通网页一样方便。用户不需要 安装任何的客户端软件,只要拥有浏览器。当用户通过浏览器发出指令,希望 运行某种r j a 应用程序时,一切都会很快的建立在客户端机器上就像你在 w e b 上点击一个页面一样。而匀a x 则是一种目前得到广泛认可的魁a 技术。 6 a i a x ( a s y n c h r o n o u sj a v a s c r i p ta n d ) a l ) 是结合了j a v a 技术、) 0 咀,以及 j a v a s c r i p t 等编程技术,可以让开发人员构建基于j a v a 技术的w 曲应用,并打 破了使用页面重载的惯例。a j a x 是使用客户端脚本与w e b 服务器交换数据的 w e b 应用开发方法。这样,w e b 页面不用打断交互流程进行重新加载,就可以 动态地更新。使用岗a 】( ,用户可以创建接近本地桌面应用的直接、高可用、更 丰富、更动态的w e b 用户界面。 a j a x 本身并不是全新的技术,而是指一种集成的方法:使用几种现有技术 包括级联样式表( c s s ) 、ja _ y a s 鲥p t 、) m 喇l 、l 和可扩展样式语言 转换( x s l l 。) ,开发外观及操作类似桌面软件的w e b 应用软件。实现a j a x 的 所有组件都已存在了许多年。a d a p t i v ep a t h 的用户体验战略部门主管兼创办合 伙人j e s s ej a m e s g a 玎e t t 今年2 月发表在a d a p t i v e p a t h 网站上的一篇文章中率先 给出了这个术语。 使用a j a x 的异步模式,浏览器就不必等用户请求操作,也不必更新整个窗 口就可以显示新获取的数据。只要来回传送采用x m l 格式的数据,在浏览器 里面运行的j a v a s c 啦t 代码就可以与服务器进行联系。j a v a s c r i p t 代码还可以把 样式表加到检索到的数据上,然后在现有网页的某个部分加以显示。 在面向消费者的诸多应用当中,g 0 0 9 i e 的g m a i l 和g o 0 9 1 em a p s 就是最常 见的例子。在g m a i l 当中,a j a x 负责如何开启线程会话,以显示不同邮件的文 本内容。而在m 印s 当中,a j a x 允许用户以一种似乎无缝的方式拖拉及滚动地 图。这些u i 都充分地使用了后台通道,也被一些开发者称为w e b2 0 【2 2 】。也 正因为a j a x 技术带来的良好的用户体验,目前基于该体系的网络应用将会越来 越多。论文中的c i d a 教学辅助平台项目正是在这样的设计思想知道下设计实 现的。 当然a j a x 应用软件的适用领域也具有一定的局限性。因为它们利用了一些 最新的w e b 技术,所以只能在某些w e b 浏览器里面运行,但相信适用a ;a x 的 浏览嚣会越来越多。 7 1 2论文主要工作和章节安排 本文共分五章: 第一章引言。论述了本文的研究背景和研究意义。 第二章w 曲应用技术。本章首先对w 曲开发技术的发展进行了介绍,并从 客户端技术和服务器端技术的两个方面分别对w 曲开发技术的发展作了相 应的阐述,针对w 曲开发技术中的相关问题,提出了r n 技术的概念和原 理,并对其中的使用的a j a ) ( 技术的概念和应用作了简单的介绍。 第三章a j a x 技术研究。本章主要对a j a x 技术的进行了深入的探讨。首先 内a x 的原理以及在捌a ) ( 技术中使用的相关技术作了说明,并实现了个简单 的q a x 的应用框架。其次对a j a ) ( 技术应用所可能带来的安全问题作了分 析并提出了相应的解决办法。最后对a j a ) 【的特点作了总结。 第四章c d a 教学辅助平台的设计与实现。本章主要针对一个具体的实际 项目,结合i u a 与a j a ) ( 的设计概念,对系统的整体结构进行了分析与设计。 系统主要按照分层思想进行了划分。并对c d a 教学辅助平台实现过程中 的相关问题及解决办法做了讨论。 第五章结束语。本章主要对全文进行了总结,并对w e b 应用的未来趋势进 行了讨论。 8 第2 章w e b 应用技术 2 1w e b 开发技术发展 h l t e m e t 经历了翻天覆她的重大变革。从最早的基于文本的简单浏览器,到 如今,h l t e m e t 已经成为贸易和信息的中心,并成为大量应用的首选平台。w 曲 应用的技术也随之发生了很大的变化。从技术层面看,w 曲架构的精华有三处: 用超文本技术( h t m l ) 实现信息与信息的连接;用统一资源定位技术( u r j ) 实现全球信息的精确定位:用新的应用层协议( h t t p ) 实现分布式的信息共享。 这三个特点无一不与信息的分发、获取和利用有关。其实,t i mb e m e r s l e e 早 就明确无误地告诉我们:”w 曲是一个抽象的( 假想的) 信息空间”,作为m t e m e t 上的一种应用架构,w 曲的首要任务就是向人们提供信息和信息服务。 最初,所有w 曲页面都是静态的;用户请求一个资源,服务再返回这个资 源。在浏览器发展的最初阶段,w 曲页面的这种静态性是可以满足用户的需求 的;但是随着w 如应用的不断扩大,个人计算机的普及和w i n d o w s 操作平台 的问世,用户希望能得到更动态的网上体验。评价一种w c b 开发技术优劣的标 准只有一个,那就是看这种技术能否在最恰当的时间和最恰当的地点,以最恰 当的方式,为最需要信息的人提供最恰当的信息服务。 w c b 是一种典型的分布式应用架构。w e b 应用中的每一次信息交换都要涉 及到客户端和服务端两个层面。因此,w 曲开发技术大体上也可以被分为客户 端技术和服务端技术两大类。 2 1 1 客户端技术的演进 w e b 客户端的主要任务是展现信息内容,随着人们对信息丰富性和多样性 的需求的不断提高,由静态技术向动态技术的转变成为了w e b 客户端技术演进 的永恒定律,w e b 客户端技术经历了以下阶段: 9 ( 2 ) ( 4 ) s g m 语言。1 9 6 9 年,i b m 的c h 盯1 e sg o l d 缅b 发明了可用于描述超文本 信息的g m l ( g e n e r a l i z e dm 缸i ( u pl a i l g u a g e ) 语言。1 9 7 8 到1 9 8 6 年间, 在a n s i 等组织的努力下,g m l 语言进一步发展成为著名的s g m l 语言 标准1 9 8 6 年国际标准化协会( i s o ) 正式承认s g m l 为国际标准规范 ( i s 0 8 8 7 9 ) 。 h 1 m l 【1 】语言。通过对s g m l 语言做了大刀阔斧的简化和完善。1 9 9 0 年, 第一个图形化的w 曲浏览器”w j d d w i d e w 曲”终于可以使用一种为w 曲 度身定制的语言h t m l 来展现超文本信息了。 j a v a s 嘶p t 和v b s c r i p t 。1 9 9 5 年j a v a 语言的问世。1 9 9 6 年,著名的n e t s c a p e 浏览器在其2 o 版中增加了对j a v a a p p l e t s 和j a v a s c r i p t 的支持。m i c r o s o f 【 的3 o 也在这一年开始支持,a v a 技术。开发人员可以用j a v a 或 j a v a s c r i p t 语言随心所欲地丰富h t m l 页面的功能了。为了用纯m i c r o s o f c 的技术与j a v a s c 邱t 抗衡,m i c r o s o f i 还为1 9 9 6 年的m3 0 设计了另一种 脚本语言一v b s c 邱t 语言。 c s s ( c a s c a d i n gs t y l es h e e t s ) 和d h t m l ( d ”a m i ch l ) 技术。1 9 9 6 年底,w 3 c 提出了c s s 的建议标准f 2 j ,同年,i e3 0 引入了对c s s 的支 持。c s s 大大提高了开发者对信息展现格式的控制能力。1 9 9 7 年的 n e t s c a p e 4 o 不但支持c s s ,而且增加了许多n e t s c a p e 公司自定义的动态 h t m l 标记,这些标记在c s s 的基础上,让h t m l 页面中的各种要素” 活动”了起来。1 9 9 7 年,m i c r o s o f t 发布了i e4 0 ,并将动态h t m l 标记、 c s s 和动态对象模型( d h t m lo b j e c tm o d e l ) 发展成了一套完整、实用、 高效的客户端开发技术体系,m i c r o s o n 称其为d h t m l 【3 】o 同样是实现 h t m l 页面的动态效果,d h t m l 技术无需启动j a v a 虚拟机或其他脚本 环境,可以在浏览器的支持下,获得更好的展现效果和更高的执行效率。 q u i c l ( t i m e 和a c t i v e x 。为了在h t m l 页面中实现音频、视频等更为复 杂的多媒体应用,1 9 9 6 年的n e t s c 印e2 o 成功地引入了对q u i c k t i m e 插 l o 件的支持。在w i n d o w s 平台上,m i c r o s o n 在客户端应用集成了c o m 和 a c t i v e x 控件。1 9 9 6 年,m3 o 正式支持在h ,蹦l 页面中插入a c t i v e x 控件的功能。 ( 6 ) r e a l p l a y e r 和f l a s h 。1 9 9 9 年,r e a l p l a y e r 插件先后在n e t s c 印e 和i e 浏览 器中取得了成功,与此同时,m i c r o s o f i 自己的媒体播放插件m e d i ap 1 a y e r 也被预装到了各种w i n d o w s 版本之中。1 9 9 6 年,m a c r o m e d i a 公司收购 了f u t u r e w a v e ,并将】o n a t h a ng a y 的发明改名为f 1 a s h 。从此,f 1 a s h 动 画成了丰富w 曲客户端的有力工具。 2 1 2 服务端技术的成熟与发展 与客户端技术从静态囱动态的演进过程类似,w e b 服务端的开发技术也是 由静态向动态逐渐发展、完善起来的。最早的w 曲服务器简单地响应浏览器发 来的h t t p 请求,并将存储在服务器上的h t m l 文件返回给浏览器。 ( 1 ) c g i ( c o m m o n g a t e w a y h e r f a c e ) 【3 】技术。1 9 9 3 年,c g i1 0 的标准草案 由n c s a ( n a t i o n a lc e n t e rf o rs u p e r c o m p u 血唱a p p l i c a t i o n s ) 提出。c g i 技术允许服务端的应甩程序根据客户端的请求,动态生成h t m l 页面, 这使客户端和服务端的动态信息交换成为了可能。随着c g i 技术的普及, 聊天室、论坛、电子商务、信息查询、全文检索等各式各样的w 曲应用 蓬勃兴起,人们终于可以享受到信息检索、信息交换、信息处理等更为 便捷的信息服务了。 ( 2 ) p h p 、a s p 、j s p 。1 9 9 4 年,r a s m u sl e r d o r f 发明了专用于w 曲服务端编 程的p h p ( p e r s o n a l h o m e p a g et 0 0 l s ) 语言。与以往的c g i 程序不同, p h p 语言将h t m l 代码和p h p 指令合成为完整的服务端动态页面,w c b 应用的开发者可以用一种更加简便、快捷的方式实现动态w 曲功能:1 9 9 6 年,m i c r o s o f t 借鉴p h p 的思想,在其w 曲服务器i i s3 ,0 中引入了a s p 技术。a s p 使用的脚本语言是我们熟悉的v b s c r i p t 和j a v a s c r i p t 。借助 和w s d l 协议共同构成了w 曲s e r v i c e 的基础。w 曲s e n ,i c e 对于w 曲开发者的 重要意义在于,当我们需要在不同的服务端、不同的客户端乃至不同的应用类 型、不同的计算设备之间传递信息的时候,以往的分布式开发技术或者因为适 应性不强,或者因为扩展能力不足,都难以满足现代w 曲开发的需要,而w 曲 s e r v i c e 正好填补了这一空白。 2 1 4w e b 开发框架和应用模型 2 0 0 0 年以后,随着w 曲应用的日益复杂,人们逐渐意识到,单纯依靠某 种技术多半无法达到快速开发、快速验证和快速部署的最佳境界。研究者开始 尝试着将已有的w 曲开发技术综合起来,形成完整的开发框架或应用模型,并 以此来满足各种复杂的应用需求。 m i c m s o f 【在客户端的技术集成方面走在了最前面。1 9 9 8 年时m i c m s o r 推 出的、矾n d o w s9 8 就可以在桌面上集成w 曲页面,这实际上是将资源管理器和 w 曲浏览器的功能有效地结合了起来。2 0 0 0 年后。m i c r o s o n 陆续推出了m s n e x p l o r c r 和与之相关的m s n 在线服务。这一应用模型将w 曲浏览、视频点播、 邮件处理、网上游戏、在线聊天等许多种用户常用的w 曲功能集成在了一个统 一的界面中。从信息利用的角度看,m s n 试图让用户在一个最舒适的环境中获 取足够的信息,这种努力的确值得人们称道。另一个与客户端技术集成相关的 例子是搜索引擎g o 0 9 1 e 在2 0 0 3 年展示给大家的g o 0 9 1 e 工具栏功能。虽然 g 0 0 9 1 e 工具栏有炒作和广告的嫌疑,但安装g o 0 9 1 e 工具栏之后的i e 浏览器将 信息浏览和信息检索有机地结合了起来,这种小小的功能改进确实是对用户的 体贴和帮助。 在w 曲服务端,2 0 0 0 年以后出现了几种主要的技术融合方式。首先,越 来越多的w 曲开发环境开始支持m v c ( m o d e l 一e w c o n t o d l e r ) 的设计模型, 为开发者提供了全套的开发框架。实际上,j 2 e e 和n e t 平台本身就是这种开 发框架的典型代表。其次,门户服务( p o n a ls e r v e r ) 和w 曲内容管理( w 曲c o n t e n t 1 3 m a n a 2 e m e m ) 在最近几年里成为了应用集成的重点模型。这两种应用模型可以 直接为开发者或最终用户提供构建w 曲应用的高级平台,可以让w 曲开发和信 息发布工作大为简化。在商业软件领域,这一类应用的例子包括m i c m s o r 的 s h a r e p o i n t 、m m 的w 曲s p h e r ep o r t a l 、f i l e n e t 的w 曲c o n t c n tm a n a g e r 等等。 开源项目在w e b 开发框架和应用模型方面表现得非常积极,s t n l t s 、j e t s p e e d 、 j p o n l e t 、c o c o o n 、l e n y a 、x o o p s 等都是开源世界里与m v c 开发框架、门户 服务和w 曲内容管理相关的优秀解决方案。 2 2r i a ( r ;c hi n t e m e ta pp l l c a t i o n ) 技术 基于h t m l 的应用程序之所以变得流行是由于应用系统的部署成本低、结构 简单,且h t m l 易于学习和使用。很多用户和开发人员都乐于放弃由桌面计算机 带来的用户界面改进,来实现对新数据和应用系统的快速访问。 然而,某些应用系统并不完全适合采用h t m l 技术。复杂的应用系统可能要 求多次提取网页来完成一项事务处理,在某些领域中,如医药和财务领域,这 往往导致交互速度低得无法接受。此外,虽然h t m l 开始走向简单,但是即使简 单的交互活动也仍然需要用很多的脚本来完成。 r i 】利用相对健壮的客户端描述引擎,这个引擎能够提供内容密集、响应 速度快和图形丰富的用户界面。除了提供一个具有各种控件( 滑标、日期选择 器、窗口、选项卡、微调控制器和标尺等) 的界面之外,r i a 一般还允许使用 s v g ( s c a l a b l ev e c t o rg r a p h i c s ,可伸缩向量图) 或其他技术来随时构建图形。 一些r i a 技术甚至能够提供全活动的动画来对数据变化作出响应。 r i a 的另一个好处在于,数据能够被缓存在客户端,从而可以实现一个比 基于h t m l 的响应速度更快且数据往返于服务器的次数更少的用户界面。对于无 线设备和需要偶尔连接的设备来说,将来的趋势肯定是向富客户端的方向发展, 并且会逐渐远离基于文本的w e b 客户端。那些运行在膝上设备上的应用系统, 可以被设计成以离线方式工作,或者至少当连接丢失的时候能基本上以离线的 1 4 图2 2 r j a 的应用程序模型 2 2 2r | a 的特点 r i a 具有的桌面应用程序的特点包括:在消息确认和格式编排方面提供互 动用户界面;在无刷新页面之下提供快捷的界面响应时间;提供通用的用户界 面特性如拖放式( d r a ga n dd r o p ) 以及在线和离线操作能力。a 具有的w e b 应用程序的特点包括如:立即布署、跨平台、采用逐步下载来检索内容和数据 以及可以充分利用被广泛采纳的互联网标准。r 工a 具有通信的特点则包括实时 互动的声音和图像。 客户机在r 从中的作用不仅是展示页面,它可以在幕后与用户请求异步地 进行计算、传送和检索数据、显示集成的用户界面和综合使用声音和图像,这 一切都可以在不依靠客户机连接的服务器或后端的情况下进行。 2 2 3r l a 发展现状 在过去的两至三年中,w e b 开发人员一直是想构建一种比传统h t m l 更丰 富的客户端:这是个用户接口,它比用h t m l 能实现的接口更加健壮、反应 更加灵敏和更具有令人感兴趣的可视化特性。r l u 5 】技术的出现允许我们在因特 网上以一种像使用w e b 一样简单的方式来部署富客户端程序。无论将来r 队是 否能够如人们所猜测的那样完全代替h t m l 应用系统,对于那些采用c s 架构 的胖客户端技术运行复杂应用系统的机构和采用基于b s 架构的瘦客户端技术 部署w e b 应用系统地机构来说,r 认确实提供了一种廉价的选择。下面是目前 目前出现的几种比较有实力或者有特点的砌a 客户端开发技术: 1 ) a j a x ( a s y n c h r o n o u sj a v a s c r i p t + x m l ) 2 0 0 5 年2 月,a d a p t i v ep a t h 的j e s s e j a m e sg a r r e t t 在他的文章“a a x :an e w a p p r o a c ht ow e ba p p l i c a t i o n s ”( a j a x :w e b 应用的一种新方法) 中提出了a i a x 【6 】 的 x 间的界限。 a ja ) 【( a s y n c h r o n o u sj a v a s c 啷ta i l dx m l ) 其实是多种技术的综合,包括 j a v a s c r i p t 、x h t m l 和c s s 、d o m 、v i l 和x s t l 、讧l h t l p r e q u e s t 【1 2 】。其中 使用t m l 和c s s 标准化呈现,使用d o m 实现动态显示和交互,使用x m l 和x s t l 进行数据交换与处理,使用订l h t t p r e q u e s t 对象进行异步数据读取, 使用j a v a s c r i p t 绑定和处理所有数据【3 】。在a j a x 提出之前,业界对于上述技术 都只是单独的使用,没有综合使用,随着g 0 0 9 l 。在g o o g l e l 丑b s 发布g o 0 9 1 e m a p s 和g o o g l es u g g e s t 时,这个技术才真正为人所认识; 2 )m a c r o m e d i af l a s h ,f i e x f l a s h 从6 0 开始f 1 船h 就逐步具备建立窗体风格的应用程序的功能。据 m a c r o m e d i a 称已经有9 8 以上的桌面系统的浏览器都安装了m a c r o m c d i a f l a s hp l a y e r o 这使得以m a c r o m e d i af l a s hp 1 a y e r 为客户端的r 队可以支持种类 广泛的平台和设备。 f l e x 是为满足希望开发i u a 的企业级程序员的需求而推出的表示服务器 和应用程序框架,它可以运行于j 2 e e 和n e t 平台。f l e x 表示服务器提供基于 标准的、声明性的编程方法和流程,并提供运行时服务,用于开发和部署丰富 客户端应用程序的表示层。f l e x 开发者使用酣 ) f httprequest=new x m l h t l p r p q u e s t 0 ;,m o z i l l a ,s a f a r i ,)e l s ei f ( w i n ( 1 0 w a c n v e x o b j e c t ) 娜一fqu髓t二new a c t l v e x o b j e c ”m 沁r o s o n x m l t t 薹:! 季i 螽!。“”。“”=” 开发人员还可以使用来自于 使对简单的窗体和图形也要求编写非常烦琐的代码) 和j a v a 浏览器插件的低市 场占有率。 2 3a j a x 富客户端 传统的w e b 应用采用同步交互过程,这种情况下,用户首先向 r r t p 服 务器触发一个行为或请求的呼求。反过来,服务器执行某些任务,再向发出请 求的用户返回一个h t m l 页面。这是一种不连贯的用户体验,服务器在处理请 求的时候,用户多数时间处于等待的状态,屏幕内容也是一片空白。图2 3 【6 】 说明了传统w 曲应用程序的结构与采用a j a 】【技术的应用程序的结构上的差别。 自从采用超文本作为w c b 传输和呈现之后,w e b 应用开发一直采用这么一 套传输方式。当负载比较小的时候,这并不会体现出有什么不妥。可是当负载 比较大,响应时间要很长,1 分钟、2 分钟数分钟的时候,这种等待就不 可忍受了。严重的,超过响应时间,服务器干脆告诉你页面不可用。往往大部 分时候,改变页面只是一小部分的数据,而需要则是重新加载整个页面呢。 黑括啪。s l 。吐 嘛书5 懈# c l a s s i c w e ba p p i c a t j o nm o d e i b r o w s e rc l i e n t 。舛p t 一 十 + h 7 眦+ 挚如啊 嚣拇汁a 。如 h t t l r e q u 喊i h 七t e ( s ) t r a n s | ) o r t j ,“。r 十 a j a x w e ba p p i i c a t i o nm o d e i 图2 3 传统的w e b 应用和采用a j a x 的w e b 应用的区别 1 8 减轻服务器的负担。a j a x 的原则是“按需取数据”,可以最大程度的减少 冗余请求,和响应对服务器造成的负担。 无须刷新或更新页面,减少用户心理和实际的等待时间。特别的,当要读取 大量的数据的时候,不用像r e l o a d 那样出现白屏的情况,a j a ) 【使用 讧u i r r p 对象发送请求并得到服务器响应,在不重新载入整个页面的情况 下用j a v 髂c r i p t 操作d o m 最终更新页面。所以在读取数据的过程中,用户 所面对的不是白屏,是原来的页面内容( 也可以加一个l o a d i n g 的提示框让 用户知道处于读取数据过程) ,只有当数据接收完毕之后才更新相应部分的 内容。这种更新是瞬间的,用户几乎感觉不到。 带来更好的用户体验。 可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来 处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。 可以调用外部数据。 基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。 进一步促进页面呈现和数据的分离。 2 4 a j a x 应用现状 目前a j a x 已经成为了w 曲应用的主流开发技术,大量的业界巨头已经采 纳并且在大力推动这个技术的发展。最近的动态包括: l 、 m m 、o r a c l e 、l h o o i 、b e a 、r e d h a t 、n o v e l l 等页界领先的公司启动 了o p e na ja ) 【项目。致力于为a j a x 开发建造先进强大的的开发工具。m m 在2 月底已经发布了o p e nq a x 项目的a j a xt 0 0 i k i tf r a m e w o r k ( a t f ) 1 o ,是个 基于e c l i p s ed e 的a j a ) ( 开发工具。 2 、微软开发了自己的a j a x 框架a i t a s ,不过主要是和服务器端他们自己的 a sp - n e t 框架配合工作。 3 、s l l l l 虽然行动迟缓,但是也将a j a x 技术列入了j 2 e e 的b l u e p r i n t ( 蓝图) 中,作为j 2 e e 技术的有益的补充。 除了上述这些公司之外,g o o g l e 公司不可不提,因为正是他们率先采用笱a x 技术建造出了一大堆非常出色的应用,才将a j a ) 【技术引到了聚光灯下。g g l e 公司建造的a j a x 应用包括g o o g l em 印s 、g m a i l 、g o o 爵es u g g e s t 等等,其中公 认最优秀最复杂的a j a ) c 应用是g 0 0 舀em a p s 。由于完全基于a j a 】【技术来建造 g o 0 9 1 em 印s 的界面,g o o g l em a p s 提供了远远超越其竞争对手的地图服务的交 互体验。如果说g o o 酉e 后台的地图技术并不存在巨大优势的话,那么内a ) 【技 术和优秀的交互设计成为了他们压倒竞争对手的最后一根稻草。最终使得 g o o g l em a p s 脱颖而出,获得了用户的青睐。 我们可以对比一下微软前后的两个地图服务就可以看出差别。 微软公司所提供的旧的地图服务:h t t p :,t e r r a s e n ,e l m i c r o s o f t m 。是传统 w 曲应用的代表,性能很差而且极其难用。 微软公司所推出了新的地图服务:i n t p :,1 0 c a l 1 i v e c o 州。新的地图服务包括 这个网站上的很多其他服务完全基于a j a x 技术来建造,获得了极好的可用性。 这个地i 訇可以看作是在g o o 百e 推出了g o o g l em a p s 服务之后,微软公司痛定思 痛的产物,在很多地方模仿了g o o g l em a p s 。 a j a 】( 的典型应用除了g o o g l em a p s ,还有微软的w i n d o w sl i v e 、y a x d e l p h i 十分类似。但它不像这些语言一样,需要先编译,而是在程序运 行过程中被逐行地解释。它与h 硼l 标识结合在一起,从而方便用户的使 用操作。 2 基于对象的语言。j a v a s c r i p t 是一种基于对象的语言,同时以可以看作 一种面向对象的。这意味着它能运用自己已经创建的对象。因此,许多 功能可以来自于脚本环境中对象的方法与脚本的相互作用。 3 简单性。j a v a s c r i p t 的简单性主要体现在:首先它是一聃基于j a v a 基 本语句和控制流之上的简单而紧凑的设计,从而对于学习j a v a 是一种 非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据 类型。 4 安全性。j a v a s c r i p t 是一种安全性语言,它不允许访问本地的硬盘,并 不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能 通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。 5 动态性的。j a v a s c r i p t 是动态的,它可以直接对用户或客户输入做出响 应,无须经过w e b 服务程序。它对用户的反映响应,是采用融事件驱动 的方式进行的。所谓事件驱动,就是指在主页( h o m ep a g e ) 中执行了某种 操作所产生的动作,就称为“事件”( e v e n t ) 。比如按下鼠标、移动窗口、 选择菜单等都可以视为事件。当事件发生后,可能会引起相应的事件响 应。 6 跨平台性。j a v a s c r i p t 是依赖于浏览器本身,与操作环境无关,只要能 运行浏览器的计算机,并支持j a v a s c r i p t x h t t p _ r e q u e s t o v 硎d e m i m d 弭i c ( ”t e x “x m n : e l s ei f ( w i n d o w ,a c t i v e x o b j e c c ) i e 浏览器 时 ( h t t p _ r e q u e s t = n e w a c t i v e x o b j e c l ( 。m s x 州2 x m l h l 。r p ”) : c a c c h ( e ) 仃y h t i pr e q u e s t = n e w a c t i v e x o b j e c h ”m i c r o s o n x m l h l l 甲“) : c a t c h ( e ) j f ( j h t t p _ r e q u e s t ) 异常,创建对象实例失败 w i n d o w a l e n ( ”不能创建x m l h “p r e q u e s t 对象实例”) ; r e t u 巾f a l s e : h t r 九r 。q u e s t0 n r e a d y s t a t e c h a “g e = p r o c e s s r e q u e s t ; 确定发送请求的方式和u r l 以及是否同步执行下段代码 h t t p - c q u e s to p e n ( ”g e t ”,u 吐c r u e ) ; h l p _ t 。q u e s t s e n d ( n u l l x 数据服务。 3 3 1j a v a s c r p l 与浏览器的安全性 当a j a 】( 应用程序启动的时候,w e b 服务器发送一组j a v a s c p t 指令给运行 在另外一台机器上的w 曲浏览器,浏览器执行这些指令。允许在w 如测览器执 行j a v a s c r i p t 指令必然存在着安全隐患,所以目前大部分的浏览器厂商和标准 制定团体意识危险性的存在,并且已经在适当的地方加入了保护,以免滥用。 本节将主要讨论这些保护措施,以及如何在a j a x 应用中使用它们。 w e b 浏览器接收到的数据可以分为两类:一类是纯粹的描述型数据、一类 是可执行的机器指令数据。描述型数据本身什么也干不了,在早期的c s ( 客户 服务器) 的应用中,客户端安装在用户的电脑上,就像桌面应用一样,网上的所 有的数据流都是纯粹的描述型数据。然而,a j a x 应用的j a v a s c d p t 代码是可执 行代码,它可以完成多种操作,所以它本身也更加危险。只要代码是存放在网 络上的台机器上,其自身可以通过网络传输到另外台机器上并执行。所以 接收到移动代码的计算机需要判断是否应该信任代码的发送者( 特别是来自公 共因特网上 的代码) ,以及它可以授权移动该代码访问哪些系统资源? 为了解决j a v a s c p t 代码可能会带来的潜在威胁,浏览器厂商允许j a v a s c r i p t 代码在一个沙箱( s a n d b o x ) 中执行 1 6 1 沙箱是一个只能访问很少计算机资源的密 闭环境,在这个环境内j a v a s c r i p t 没有提供在客户的计算机上写文件的、删除 文件或者创建目录、删除目录的方法,因此a j a x 应用也就不能读取或写入本地 文件系统。大多数情况下,除了它自身所在的w 曲域,它也不能创建任何到其 他w 曲域韵网络连接。有时候这称作的“同源策略( s 哪e _ o r i r i np o l i c y ) ”。 同源策略即一个脚本只能读取与它同源( 如由同一个主机下载、通过通一个 端口下载或者下载协议相同) 的窗口或文档属性。 3 3 3 3 2 数据的安全性 由于在w 曲应用中,浏览器将数据提交给服务器时,需要经过i n t e m e t 上 的很多中间节点( 例如:路由器、代理服务器等) ,普通的h t t p 数据是以明文 传输的,这样在传输过程中的任何中间节点都是可以读取数据包中的数据,很 显然在将数据暴露给任何对这些中间节点有控制权的人,对数据来说都是威胁。 a j a x 使用h t t p 协议,既用于传输客户端代码,也用于向服务器提交数据 请求。我们在本章开头讨论过的内容,无论是耳眦l 表单还是江l h t f p r e q u e s t 对象在h t t p 这个层面上都是一样的。所以设计不佳的a ja ) 【都可能受到恶意的 攻击,我们通常称这种攻击的方法称作“中间人攻击”( h a n i n t h e h i d d l e a t t a c k ) 。下面我们在分析“中间人攻击”的原理后,针对其发动攻击的原理 提出防范这样攻击的方法。 3 3 2 1 中间人攻击 中间人攻击( m a n - i n t h e - h i d d l ea t t a c k ,简称”卜1 i t m 攻击”) 是一种”间 接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计 算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为”中间 人”。然后入侵者把这台计算机模拟一台或两台原始计算机,使“中间人”能够与 原始计算机建立活动连接并允许其读取或修改传递的信息,然而两个原始计算 机用户却认为他们是在互相通信。通常,这种”拦截数据一一修改数据一一发送 数据“的过程就被称为”会话劫持”( s e s s i o nh i j a c k ) 。 ”会话劫持”( s e s s i o nh j _ j a c k ) 是一种结合了嗅探阻及欺骗技术在内的攻 击手段。广义上说,会话劫持就是在一次正常的通信过程中,攻击者作为第三 方参与到其中,或者是在数据里加入其他信息,甚至将双方的通信模式暗中改 变,即从直接联系变成有攻击者参与的联系,如图3 2 所示。 图3 2 中同人攻击 简单地说,就是攻击者把自己插入到受害者和目标机器之间,并设法让受 害者和目标机器之间的数据通道变为受害者和目标机器之间存在一个看起来像 ”中转站”的代理机器( 攻击者的机器) 的数据通道,从而干涉两台机器之间的 数据传输,例如监听敏感数据、替换数据等。由于攻击者已经介入其中,他能 轻易知道双方传输的数据内容,还能根据自己的意愿去左右它

温馨提示

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

评论

0/150

提交评论