




已阅读5页,还剩59页未读, 继续免费阅读
(计算机科学与技术专业论文)基于ajax的rss阅读系统的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于a j a x 的r s s 阅读系统的研究与实现 摘要 传统的w e b 应用程序执行速度较慢,交互也受到限制,尤其是 和典型的桌面应用程序相比。为了获得新数据而不重新加载w e b 页 面,虽然也曾经采用过一些方法,但这些技术都没有很好的被支持。 随着w e b2 0 的出现,一个过去并不被广泛支持的技术已经被越 来越多的用户所接受,它给了开发者更多的自由,开发先进的w e b 应用程序。这些通过j a v a s c r i p t 来异步取得x m l 数据的应用程序, 被称为“a j a x 应用程序( a s y n c h r o n o u sj a v a s c r i p ta n dx m l a p p l i c a t i o n s ) 。与传统w e b 应用程序相比,它显得更像桌面应用程序。 另外,在信息传播方面,近年来被称为r s s 的新一代信息传递 方式也应运而生。r s s 是一种信息聚合的技术,是某一站点用来和其 它站点之间共享内容的一种简易信息发布和传递的方式,使得一个网 站可以方便地调用其它提供r s s 订阅服务的网站的内容,从而形成 非常高效的信息聚合,让网站发布的内容在更大的范围内传播。 本文首先将讨论和研究目前w r e b2 o 中流行的a j a x 和r s s 这两 种关键技术。利用r s s 可以实现网络信息聚合,而a j a x 的强大功能 可以使用户任意修改网页上的信息,而无须向服务器重新发送请求和 刷新页面。两种技术的结合可以大大提高用户体验,并在很大程度上 缓解了服务器的数据处理压力。 在设计中,本系统借鉴了m v c ( 模型一视图一控制器) 设计模式 来实现显示内容和业务逻辑的完全分离,综合采用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 处理请求和控制业务流程,由j s p 输出相 应结果,由j a v a b e a n 负责具体的业务数据和业务逻辑,使得系统具 有很强的伸缩性、通用性、兼容性和可操作性。开发成果为b s 模式, 客户端只需要浏览器就可以实现新闻的聚合与阅读,操作起来方便简 0 出 f 日。 在本文的最后,详细介绍了本系统中几个关键问题的实现,包括: 使用t o m c a t 提供的数据库连接池建立与数据库的连接,防范s q l 注 入攻击,利用a j a x 实现用户登录信息的验证,以及r s s 阅读器的具 体实现。 关键词:a j a x r s sm v c 新闻聚合 d e s i g na n d 姗l e m 哐n 1 :a t i o no fr ss r e a d e rb a s e do na j a x a b s t r a c t c o m p a r e dw i n ld e s k t o pa p p l i c a t i o n , t r a d i t i o n a lw e ba p p l i c a t i o nr u ns l o w l y , a n d i ti sr l 蜘c 托通i ni n t e r a c t i o n i no r d e rt oa c q u i r ean e wd a t aw i t h o u tr e l o a d i n gw e b p a g e ,p e o p l ea d o p t e ds o m em e t h o d s ,b u tt h e s et e c h n i q u e sa l lh a v en o tw e l lb e e n s u p p o r t e d w i 吐lt h ee m e r g e n c eo fw r e b2 0 ,at e c h n i q u et h a tw a sn o ts u p p o r t e de x t e n s i v e l y h a sa l r e a d yb e e na c c e p t e db ym o r ea n dm o r eu s e r s d e v e l o p i n gt h ea d v a n c e dw e b a p p l i c a t i o n , i tg a v et h ed e v e l o p e r sg r e a t e rf r e e d o m t h ea p p l i c a t i o n st h a ta c q u i r ex m l d a t aa s y n c h r o n o u s l yb yj a v a s c r i p t , i sc a l l e d a j a ga p p l i c a t i o n s ( a s y n c h r o n o u s j a v a s c r i p ta n dx m la p p l i c a t i o n s ) ”c o m p a r e dw i t i lt r a d i t i o n a lw e ba p p l i c a t i o n , i t s e e m st ob ed e s k t o pa p p l i c a t i o n i na d d i t i o n ,i nt h ef i e l do fi n f o r m a t i o nt r a n s m i s s i o n , o n en a m e dr s sc o m e so u t i nr e c e n ty e a r s r s si sat e c h n o l o g yo fi n f o r m a t i o na g g r e g a t i o na n daf a c i l em e t h o d o fi n f o r m a t i o ni s s u i n ga n dt r a n s f e r r i n gb e t w e e nd i f f e r e n tw e b s i t e s ,e a c hw e b s i t ec a n u s ei n f o r m a t i o ne a s i l yf o r mo t h e rw e b s i t e sw h i c h s u p p o r tr s ss e r v i c e a tf i r s t , t h i sp a p e rw i l ld i s c u s sa n ds t u d yt w oc u r r e n tp r e v a l e n c ek e y t e c h n o l o 季e so fw e b2 o :a j a xa n d r s s r s sc a nb eu s e df o ri n f o r m a t i o ns y n d i c a t i o n s y s t e m b e h a v i n gt h ep o w e r f u lf u n c t i o no fa j a x ,t h eu s e rc a nm o d i f yt h ei n f o r m a t i o n a r b i t r a r i l yo nt h ew e b s i t e ,w i t h o u th a v i n gt or e s e n dr e q u e s t sa n du p d a t ep a g e sf r o m t h es e r v e r s u c ht e c h n o l o g ym a ye n h a n c et h eu s e re x p e r i e n c eg r e a t l y , a n da l s o a l l e v i a t et h es e r v e rd a t ap r o c e s s i n gp r e s s u r ei nt h ev e r yg r e a td e g r e e i nt h ed e s i g n , t h es y s t e ma d o p t st h em v c ( m o d e l - v i e w - c o n t r o l l e r ) d e s i g n p a r e m st oa c h i e v es e p a r a t i o no ft h ec o n t e n ta n db u s i n e s sl o g i c i ti sac o m b i n a t i o no f j s p , s e r v l e ta n dj a v a b e a nt e c h n o l o g y , h a n d l i n go ft h er e q u e s tb ys e r v l e ta n dc o n t r o l b u s i n e s sp r o c e s s e sa n dt h ec o r r e s p o n d i n go u t p u tb yj s p , s p e c i f y i n go p e r a t i o n a ld a t a a n db u s i n e s sl o g i cb yj a v a b e a n ,s ot h es y s t e mi sv e r yf l e x i b l e ,g e n e r a l ,c o m p a t i b i l i t y a n di n t e r o p e r a b i l i t y b e c a u s et h i ss y s t e ma d o p t sb sp a t t e r n ,c l i e n t so n l yn e e d b r o w s e ra n do p e r a t i o ni sm a d ev e r ye a s y f i n a l l y , t h i sp a p e rw i l li n t r o d u c es e v e r a lk e yp r o b l e m si nd e t a i l ,i n c l u d i n g :u t i l i z e d a t a b a s ec o n n e c t i o np o o lp r o v i d e db yt o m c a tt ob u i l dt h ec o n n e c t i o nt od a t a b a s e , h o wt og u a r da g a i n s ts q li n j e c t i o na t t a c k s ,h o wt ou s ea j a xt ov e r i f yt h ed a t a , a n d h o wt oc o m p l e t ea no n l i n er s sr e a d e r k e y w o r d s :a j a x ,r s s ,m v c ,i n f o r m a t i o ns y n d i c a t i o n 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他 教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:趱连日期:丝! :至:坦 关于论文使用授权的说明 本人完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究生 在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并向 国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学 校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手 段保存、汇编学位论文。 本学位论文不属于保密范围,适用本授权书。 本人签名: 导师签名: 日期: 日期: 弛5 ) 多、肜 沙d ,t o 北京邮电大学工学硕士论文 1 1课题背景 第一章引言 在浏览网页的时候,我们经常会看到圆或者趔这样的图标,该标志通 过超级链接直接连接到一个被称为r s s 种子( r s sf e e d ) 的x m l 文件,这就是 网站在利用r s s ( r e a l l ys i m p l es y n d i c a t i o n ) 来发布最新消息,用户可以通过 r s s 阅读器接收和阅读这些r s s 种子的内容。 r e a d w r i t ew e b 网站公布的2 0 0 7 年互联网发展趋势预测指出:r s s 将成为 主流。2 0 0 6 年中国国内第一份w e b 2 0 报告中国w e b 2 0 现状与趋势调查报告 也反映出订阅了r s s 之后,有8 7 1 的用户的浏览习惯发生了变化。目前,越 来越多的博客网站、新闻网站、政府网站以及许多个人和商业网站都支持r s s , 微软、思科与亚马逊等已经纷纷涉足于这一领域,迪斯尼公司也利用这一技术发 布视频新闻,苹果公司则利用它向用户通报其最新的音乐资讯。由此可见,不久 的将来,r s s 将有飞速的发展,并为互联网的发展提供重要的技术支持,因此实 现基于r s s 的新闻阅读系统是当前的热点,具有很高的实际意义。 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 那样使用丰富的效果 来展示数据,用户体验比较糟糕。随着w e b 应用程序复杂性越来越高,传统的 w e b 应用程序已经渐渐不能满足w e b 浏览者更高的、全方位的体验要求了。 为了解决传统b s 应用程序较c s 应用程序相比,执行速度较慢,交互受到 限制的问题,人们也曾经采用过一些方法,但这些技术都没有很好的被支持。 2 0 0 5 年2 月w e b 设计咨询企业a d a p t i v ep a t h 公司用户体验总监j e s s e sj a m e s g a r r e t t 发表了名为a r x an e wa p p r o a c ht ow e ba p p l i c a t i o n s ) ) 的文章。文中 北京邮电大学工学硕士论文 g a r r e t t 阐述了w e b 应用程序可以更接近于传统的桌面应用程序的观点,他引用 了一些新技术和g o o g l e 项目( g o o g l em a p 、g o o g l es u g g e s t 等) 作为例子来说明 传统的基于桌面的用户交互模型现在如何应用于w e b 上,讨论了如何消除胖客 户( 或桌面) 应用与瘦客户( 或w e b ) 应用之间的界限,并给出了基于这种思想 的交互模型,同时将实现这种应用的技术命名为:a j a x ( 即a s y n c h r o n o u s j a v a s c r i p ta n dx m l ) 。这是a j a x 一词的首次提出,由此a j a x 迅速成为了当今 w e b 开发中最为热门的词汇,w e b 开发掀开了它崭新的一页。 a j a x 不同于以往我们所熟悉的w e b 开发技术,准确地说它并不是一种技术, 而是一系列技术的综合体,从某种角度讲它为w e b 开发提供了一种与以往传统 开发思想有着本质区别的一种w e b 应用的设计方法,即实现拥有桌面应用优点 的w e b 应用程序的一种新的开发方法。具有a j a x 设计特征的w e b 应用预示了新 一代w 曲应用的到来。 对w e b 开发而言a j a x 已经成为一种新的设计模式,它的提出不仅是对传统 的w e b 应用的巨大冲击,同时还为w e b 开发带来了极大的挑战。同时,w e b 2 0 时代的到来,使a j a x 更是成为开发个性化、中心化和信息自主化网络应用强有 力的代表技术之一。 到目前为止a j a x 仍在不断的发展,许多相关技术层出不穷,种类繁多的新 的开发框架和组件库的出现在给a j a x 开发带来很多便利的同时,也使a j a x 的应 用处于一种混沌状态,如何将a j a x 应用于企业级的w e b 应用中,如何实现基于 a j a x 模式的w e b 开发是一个非常值得研究的问题。 1 2 课题任务 本课题的研究目标是:利用a j a x 技术实现b s 的r s s 新闻阅读系统。客户 端只需要一个浏览器,不需要下载插件或者小程序,在浏览器窗口地址栏输入 w 曲服务器的地址( u r l ) 就可以实现订阅和管理r s s 种子。系统运用a j a x 技 术实现浏览器与服务器异步通信,在不重新载入整个页面的情况下更新相应部分 的内容,从而把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能 力来处理,减轻服务器和带宽的负担。 1 3 论文结构 2 北京邮电大学工学硕士论文 本文共分六章,内容安排如下: 第一章引言,介绍本课题的意义、任务、预期目标等。 第二章针对本课题采用的a j a x 页面无刷新技术进行了深入的分析研究,着 重介绍了标准a j a x 交互,它的关键技术和特点,以及使用a j a x 技 术的意义。 第三章主要介绍了本文的另一重要技术r s s ,包括发展历史、结构特点、 应用模式和规范等。 第四章介绍了系统的总体分析和概要设计,包括需求分析、系统流程分析、 功能设计以及数据库设计等,然后对服务器的选择进行了简单说明。 第五章通过借鉴m v c 模型讨论了系统框架的层次划分,并对系统中的几 个关键问题的实现和系统运行环境的配置进行了比较详细的阐述。 第六章结束语,对本文工作进行全面总结,给出本文所取得的成果,指出 存在的不足和改进方向。 北京邮电大学工学硕士论文 第二章a j a x 技术 本章主要讨论的是w e b 2 0 的核心技术a j a x ( a s y n c h r o n o u sj a v a s e r i p t a n dx m l ,也就是异步j a v a s c r i p t 和x m l ) 。a j a x 是2 0 0 5 年2 月a d a p t i v ep a t h 的j e s s ej a m e sg a r t e r 在他的文章a j a x :an e wa p p r o a c ht ow e ba p p l i c a t i o n 中首 先提出。a j a x 实际上是融合多种现有技术的结合体。本章主要介绍a j a x 的基本 概念,构成a j a x 的关键技术,a j a x 框架的实现机制,以及采用a j a x 的意义。 2 1 a j a x 的定义 a j a x ,正如其名字所揭示的样,是j a v a s c r i p t 和x m l 的一种结合。它使 用x m l 和x s l t 来进行进行数据交换与处理( a j a x 客户端与服务器端传输的数 据也可以是文本等其他格式,但为了能够实现异构环境下的数据交换以及数据与 显示的分离,一般使用x m l 来进行数据交互) ,使用j a v a s c r i p t 绑定和处理所有 数据。a j a x 的工作原理相当于在用户和服务器之间加了一个中间层,使用户操 作与服务器响应异步化。 2 1 1 j a v a s c r i p t 简介 j a v a s c r i p t 是n e t s c a p e 创建的脚本语言,建立原型时本来叫做m o c h a ,正式 发布之前曾经改名为l i v e w i r e 和l i v e s c r i p t ,不过最后终于确定为j a v a s c r i p t 。 j a v a s c r i p t 是一种功能强大的基于对象的脚本语言。j a v a s c r i p t 程序可以直接 嵌入h t m l 页面,与w e b 浏览器定义的文档对象模型( d o m ) 一起使用时, j a v a s c r i p t 可以创建动态h t m l ( d h t m l ) 内容,允许用户与客户端的w e b 应 用程序交互。使用它的目的是与h t m l ,j a v a 脚本语言( j a v aa p p l e t ) 一起实现 在一个w e b 页面中连接多个对象,与w e b 客户端进行交互的作用,从而可以开 发客户端的应用程序。它是通过嵌入或调入到标准的h t m l 语言中实现的。它 具有以下几个基本特点: 1 是一种脚本语言:j a v a s c r i p t 是一种脚本语言,它采用小程序段的方式实 现编程。像其它脚本语言一样,j a v a s c r i p t 同样已是一种解释性语言,它提供了 4 北京邮电大学工学硕士论文 一个简易的开发过程。它的基本结构形式与c ,c + + ,v b ,d e l p h i 十分类似。但它 不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与 h t m 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 基本语 句和控制流之上的简单而紧凑的设计。其次它的变量类型是采用弱类型,并未使 用严格的数据类型。 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 e r i p t 是依赖于浏览器本身,与操作环境无关,只要能运 行浏览器的计算机,并支持j a v a s c r i p t 的浏览器就可正确执行。从而实现了“编 写一次,随处运行”的梦想。实际上j a v a s c r i p t 最杰出之处在于可以用很小的程 序做大量的事。无须有高性能的电脑,软件仅需一个字处理软件及一个浏览器, 无须w e b 服务器通道,通过自己的电脑即可完成所有的事情。 为了保证j a v a s c r i p t 在各种宿主环境中都可以正确编译和执行,e c m a ( e u r o p e a nc o m p u t e rm a n u f a c t u r e r sa s s o c i a t i o n ) 制定了e c m a 2 6 2 正式标准, 批准j a v a s c r i p t 作为e c m a s c r i p t 规约,根据这些标准编写的页面和脚本在遵循 相应原则的任何浏览器上都应该有相同的外观和表现。 2 1 2x m l 简介 x m l 是e x t e n s i b l em a r k u pl a n g u a g 的简写,是一种可扩展的标识语言。它 具有一种开放的、可扩展的、可自描述的语言结构。它是用来描述数据结构的一 种语言,就正如它的名字一样。它使对某些结构化数据的定义更加容易,并且可 以通过它和其他应用程序交换数据。 x m l 是从s g m l 发展出来的,s g m l 是指“通用标识语言标准”( s t a n d a r d 北京邮电大学工学硕士论文 g e n e r a l i z e dm a r k u pl a n g u a g e ) ,它是国际上定义电子文件结构和内容描述的标 准,是一种非常复杂的文档的结构,主要用于大量高度结构化数据的防卫区和其 他各种工业领域,利于分类和索引。 而x m l 就是s g m l 的简化版,是w 3 c 组织于1 9 9 8 年2 月发布的标准, 其目的是为了规范互联网上数据交换的格式,以遵循统一的标准。它在s g m l 基础上,去掉语法定义部分,适当简化d t d 部分,并增加了部分互联网的特殊 部分。因此,x m l 也是一种置标语言,基本上是s g m l 的一个子集。因为x m l 是一种树状结构,可以把形式与内容彻底分离,正是基于这个原因,可以使用 x m l 将不同数据格式的数据进行转换,从而达到数据交换的目的。 x m l 具有如下特点 1 良好的可扩展性。x m l 允许各个不同的行业根据自己独特的需要制定自 己的一套标记,同时,它并不要求所有浏览器都能处理这成干上万的标记,同样 也不要求一个置标语言能够适合各个行业各个领域的应用,这种具体问题具体分 析的方法更有助于置标语言的发展。x m l 在两个意义上是可扩展的。首先,它 允许开发者创建他们自己的数据规则,有效地创建可被用于多种应用的“可扩展 的”标志集。其次,使用几个附加的标准,可以对x m l 进行扩展,这些附加标 准可以向核心的x m l 功能集增加样式、链接和参照能力。作为一个核心标准, x m l 为可能产生的别的标准( 如数学置标语言m a t h x m l 等) 提供了一个坚实 的基础。 2 内容与形式的分离。正如前面所说,x m l 中信息的显示方式已经从信息 本身中抽取出来,放在了“样式单中。这样做便于信息表现方式的修改,便于 数据的搜索,也使得x m l 具有良好的自描述性,能够描述信息本身的含义甚至 它们之间的关系。 3 开放性和跨平台性。x m l 有着很强的“表述信息的能力,并且以文本 格式存储和传输,便于用作各种不同系统之间的交流媒介,是一种非常理想的“网 际 语。 正是x m l 所具有的上述特点,使x m l 非常适合于在异构环境下的数据交 换,很好的实现内容与数据的分离,从而在i n t e r n e t 领域得到广泛的应用,如 w e bs e r v i c e s ,数据传输与数据交换,以及各种配置文件的描述等。而在a j a x 中 大多数情况下也是使用x m l 来实现服务端与客户端的通信。 2 1 3 a j a x 与传统w e b 技术的比较 在传统的w e b 应用程序交互方式中,客户端与服务端的数据交互是同步 ( s y n c h r o n o u s ) 响应的。其响应方式如图2 1 所示: 6 北京邮电大学i 学顿论文 _ e b 同步模式 盅鱼l 呻h f 雌每 封。一。陟: u 暖务# 螭 服务曩魁理 图2 - 1 传统w e b 程序的同步响应 用户触发一个 唧请求到服务器,服务器对其进行处理后再返回一个新的 h t m l 页到客户端,每当服务器处理客户端提交的请求时,客户都只能空闻等待, 哪怕只是一次很小的交互、或者只需从服务器端得到根简单的一个数据,都要返 回一个完整的椰r m l 页,而用户每次都要浪费时间和带宽去重新读取整个页面, 在等持过程中,用户不能进行下一步的操作,必须等待服务器处理完成后才能继 续进行。服务器强制用户进入提交等待一重新显示的循环中,用户的动作 总是与般务器的“思考时间”同步。 与传统 w e b 应用程序不同的是,a j a x 的客户端与服务端的数据交互是异步 ( a s y n c h n o u s ) 响应的,用户会话一旦建立,谢览器并不是等待加载一个网页, 而是加载一个a j “引擎,该引擎是由j a v a , s a - i p t 编写并通常放置在一个隐藏帧 内。引擎的责任包括构造用户操作界面以及与服务器的沟通。a j 旺引擎允许用 户与应用的交互异步进行而无须直接访问服务器,所以用户不会在等待服务器处 理完数据后才进行下一步的操作。用户动作的处理由传统的通过表单提交来激发 一个m 1 甲请求变为j 硼瞳p t 调用 j “引擎。给用户的响应无需等到服务 器处理后再返回,而直接由引擎来处理。如果引擎需要从服务器获取数据,引擎 通常以) 呲格式激发一个异步的请求,用户端完全没有被中断的感觉。简旺的 异步性如图2 - 2 所示: # * # 北京邮电学i 学碗士论文 i a x v e b 横型 图2 - 2a j a xw e b 程序的异步响应 在图中不同的客户请求放在各自独立的线程中进行处理,各线程相对独立的 处理客户端的请求并且做出响应,各个线程之间互不干扰。而不像图2 - l 所示必 需等待前一个操作处理完毕才进行下一步的操作。 2 2 a j a x 的关键技术 a j 强实际并不是一门新的语言或技术,它是建构在已有技术的基础上,实 际上是几项技术按一定的方式组合,在共同的协作中发挥各自的作用,它包括如 下几个关键技术。 基于x h t m l 和c s s 的标准化显示 基于x l v t t h t t p p e q e e s t 的异步数据获取l 基于d o m 的动态显示和交互; 基于x m l 和x s l t 的数据交换与处理; 使用j & v a s c r i p t 来绑定一切。 在下面的几小节中将对上述技术逐一进行介绍。 2 2 1 基于x h r m l 和c s s 的标准化量示 h t m l 语言是我们建立网页的工具,从它出现发展到现在,规范不断完善, 功能越来越强。但是它依然存在着一些缺陷和不足,比如语法检查不严格,可扩 展性差等等,为此人们仍在不断的改进它,使它更加便于控制和有弹性,以适应 网络上日新月异的应用需求。基于此种目的,w 3 c 组织在h t m l 和x m l 的基 础上于2 0 0 0 年底公布发行了x i t r m l i 0 版本。 北京邮电大学工学硕士论文 x h t m l1 0 是一种在h t m l4 0 基础上优化和改进的的新语言,其本身符合 x m l 的标准。x h t m l 是种增强了的h t m l ,它的可扩展性和灵活性将适应 未来网络应用更多的需求。 x h t m l 实质上就是一种x m l 应用。它采用x m l 的d t d 文件格式定义, 并运行在支持x m l 的系统上。它利用了x m l 的n a m e s p a e e s 功能,浏览器制造 商不需要再创造新的私有标签( t a g s ) ,他们只需要在x h t m l 代码里包含x m l 代码片段,或者x m l 代码里包含x h t m l 代码片段。 相对于h t m l ,x h t m l 做了如下几个主要的限制: 1 文档应该是良构的; 2 元素名和属性必须统一小写; 3 对于非空标签,也需要结束标签; 4 属性值必须总是使用引号包裹; 5 不支持属性简化,属性值对必须书写完整; 6 空元素必须有一个结束标签; 7 祛除前缀和后缀的空白字符。 x h t m l 是w e b 标准的重要组成部分,但是x h t m l 仅仅定义w e b 结构化 方面的标准,对于w e b 表现方面的标准,必需通过c s s 来实现。 c s s 是c a s c a d i n gs t y l es h e e t s ( 层叠样式表) 的简称,它是由w 3 c 组织于 1 9 9 4 年创建的,并在w e b 中得到广泛的应用。w 3 c 在1 9 9 6 年1 1 月推荐使用 c s s ,并批准了c s s1 级规范,c s s l 级规范说明了用于h t m l 页面的属性。这 些属性代替了传统的字体标签和其他“样式标记,例如颜色和边距。1 9 9 8 年5 月,w 3 c 批准了c s s 2 级规范,将一些附加功能添加到1 级规范,并引进了定 位属性。这些属性代替了表格标签普遍的用法,用来设计页面元素的表示。c s s 规范的最新版本是c s s 2 1 ,它改进了某些属性,并删除了在当前浏览器里没有 作用或作用很小的属性。如今它已经在i n t e r n e te x p l o r e r6 ,n e t s c a p en a v i g a t o r7 , m o z i l l a ,o p e r a 和s a f a r i 都得到了全面支持。 样式表提供了一种集中的方法来定义类型和显示的样式,它可以很方便的应 用于页面中各个独立的元素上。定义各个元素的显示样式比如字体颜色、边框、 背景色、透明度和字体大小,也可以定义元素之间的相对位置和简单的用户交互。 通过c s s 可以使用更丰富、更灵活的样式,更简单的设计出更美观的网页。此 外,样式表还提供了一种很有用的方法,只需要在一个地方定义样式,就可以在 多个页面中引用,这样只要修改一处地方,就可以修改多个页面的显示方式。 c s s 主要由两个部分组成,选择器和样式声明,选择器是用来选择哪一个元 素将会被定义样式,而样式声明则声明那种样式属性将会被应用。例如我们想改 9 北京邮电大学工学硕士论文 变文本输入框的边框样式,可以使用下面的c s s 样式: i n p u t b o r d e r :l p xs o l i db l a c k 其中i n p u t 就是选择器,表示该样式只适用于h t m l 文档中所有的 标签。而花括号中的内容就是c s s 的样式声明。表示所有的 元素的边框 都用一个象素的黑色实线显示。 正是x h t m l 和c s s 的上述特性,可以使a j a x 更容易的实现数据与表现的 分离。而且在a j a x 中,由于客户端与服务器之间的通信大部分是x m l 数据, 而x m l 数据仅仅是一种显示格式,并不能真正在网页中显示,所以必需要通过 c s s 用户才可以看见服务器传回的x m l 数据。这样c s s 在生成用户界面,以及 在用户交互中起了重要的作用。 2 2 2 基于x m l h t t p r e q u e s t 的异步数据获取 a j a x 的一个最大的特点是无需刷新页面便可向服务器传输或读写数据( 又 称无刷新更新页面) ,同时实现了与服务器的异步通信,这一特点主要得益子 x m l h t t p 组件x m l h t t p r e q u e s t 对象。通过x m l h t t p r e q u e s t 可以使w e b 应用 程序像桌面应用程序一样只同服务器进行数据层面的交换,这些数据大多数采用 x m l 格式,当然也可以是文本型数据,这样客户端不需要每次都刷新界面,也 不用每次将数据处理的工作提交给服务器来做,这样即减轻了服务器的负担又加 快了响应速度、缩短了用户等候时间。 x m l h t t p r e q u e s t 最早是在i e5 0 中实现的,主要是通过a c t i v e x 组件来创 建一个x m l h t t p r e q u e s 对象,由于它只能在i e 中使用,所以大多数开发人员 都没有采用x m l h t t p r e q u e s t 对象。但是现在m o z i l l a1 0 和s a f a r i1 2 已把它列 为事实上的标准。w 3 c 组织虽然并没有将x m l h t t p r e q u e s t 列入标准,但是它的 大部分功能已经涵盖在d o ml e v e l3 加载和保存规约( d o ml e v e l 3l o a da n d s a v es p e c i f i c a t i o n ) 这一新的提案中。所以它的大部分方法都可以在f i r e f o x , s a f a r i ,o p e r a ,k o n q u e r o r 和i n t e m e te x p l o r e r 中得到实现,这样就保证了a j a x 在各个不同浏览器之间的通用性。 由于x m l h t t p r e q u e s t 不是一个w 3 c 标准,所以不同的浏览器创建 x m l h t t p r e q u e s t 对象实例的方法有所差异。i n t e m e te x p l o r e r 把x m l h t t p r e q u e s t 实现为一个a c t i v e x 对象,而其他的浏览器( 如f i r e f o x ,s a f a r i 和o p e r a ) 则把 它实现为一个本地j a v a s c r i p t 对象。由于存在这些差异,所以在创建 x m l h t t p r e q u e s t 对象时必须检测浏览器的兼容性。 x m l h 郇r e q u e s t 提供了大量的属性和方法来处理客户端的请求和响应,表 2 1 列出了x m l h t t p r e q u e s t 典型方法: 1 0 北京邮电大学工学硕士论文 表2 - 1x l 儿h tt p r e q u e st 的典型方法 方法描述 a b o r t 0 停止当前请求 g e t a l l r e s p o n s e h e a d e r s 0 把h t r p 请求的所有响应首部作为键值对返 回 g e t r e s p o n s e h e a d e r ( “h e a d e r ) 返回指定首部的串值 o p e n ( m e t h o d ,、l r l ”) 建立对服务器的调用。m e t h o d 参数可以是 g e t , p o s t 或p u t 。u r l 参数可以是相对u r l 或绝对u r l 。这个方法还包括3 个可选的参 数 s e n d ( c o n t e n t ) 向服务器发送请求 s e t r e q u e s t h e a d e r ( h e a d e r , 把指定首部设置为所提供的值。在设置任何 v a l u e ,) 首部之前必须先调用o p e n 0 除了这些方法之外,x m l h t t p r e q u e s t 对象还提供了许多属性,如表2 - 2 所 示。处理x m l h t t p r e q u e s t 时通过使用这些属性来表示自身的状态和服务端返回 的信息。 表2 - 2x l d l h t t p r e q u e s t 的标准属性 属性描述 o n r e a d y s t a t e c h a n g e 每个状态改变时都会触发这个事件处理器, 通常会调用一个j a v a s c r i p t 函数 r e a d y s t a t e 请求的状态。有5 个可取值:0 = 未初始化, 1 = 正在加载,2 = 己加载,3 = 交互中,4 = 完成 r e s p o n s e t e x t 服务器的响应,表示为一个串 r e s p o n s e x m l 服务器的响应,表示为x m l 。这个对象可以 解析为一个d o m 对象 s t a t u s服务器的h t t p 状态码( 2 0 0 对应o k ,4 0 4 对应n o tf o u n d ,等等) s t a t u s t e x th t t p 状态码的相应文本( o k 或n o tf o u n d 等等) 2 2 3 基于d o m 的动态显示和交互 d o m 就是d o c u m e n to b j e c tm o d e l ( 文档对象模型) 的简写。它是w 3 c 组 北京邮电大学工学硕士论文 织的一个规约,是处理x m l 和h t m l 的标准a p i 之一。正因为它是一个标准, 所以它可以以独立于平台和语言的方式访问和修改一个文档的内容和结构,即它 对文档的处理与编程语言无关,也与操作系统无关。在这个模型中,一个文档被 看成结构化的数据,对于x m l 就像一棵树的结构,树中的每个节点对应一个 x m l 标记,都是一个对象。 在a j a x 中,d o m 模型其实是最核心的结构,是所有a j a x 开发的基础架构。 如果没有d o m 模型,就没有办法在客户端改变页面的内容,所有的局部刷新、 异步请求也就无法实现。图2 3 显示了d o m 在a j a x 中的作用。 l w e t l y 器 编辑页瑟t 节点 、, o o u ( 包含对 ,辍住 j a v a s c d p t c s s 的控制) 露【序 a j a x 个猢僖狂 l 煳卅嗍瞒瞬步艨i k 、矿 厦务器端 图2 - 3d o m 在a j a x 结构中的位置 d o m 可以动态的访问和修改文档的内容,结构和显示方式。使用d o m , 可以将整个w e b 页面的架构变成编程的对象,通过j a v a s c r i p t 来操作它们。这样 就可以使a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届河北省石家庄市赵县物理八上期末学业水平测试试题含解析
- 2026届重庆市江北九校物理八上期末综合测试模拟试题含解析
- 江苏省无锡市江阴市敔山湾实验学校2026届物理八上期末调研试题含解析
- 黑龙江省哈尔滨道外区四校联考2026届物理八上期末调研模拟试题含解析
- 北京市海淀区清华附中2026届物理八上期末质量跟踪监视试题含解析
- 安徽省合肥四十五中学2026届物理八年级第一学期期末经典模拟试题含解析
- 2025至2030年中国电商代运营行业发展趋势预测及投资战略咨询报告
- 2025年帆布鱼池行业研究报告及未来行业发展趋势预测
- 2025年代糖行业研究报告及未来行业发展趋势预测
- 2025年复合氨基酸液肥行业研究报告及未来行业发展趋势预测
- 2025年高考真题-化学(河南卷) 含答案
- 2025至2030中国手持式云台稳定器行业项目调研及市场前景预测评估报告
- JG/T 231-2018建筑玻璃采光顶技术要求
- JG/T 155-2014电动平开、推拉围墙大门
- 托业考试模拟试题及答案
- 2025消瘦诊治与管理专家共识解读课件
- 朋友名义贷款车协议书
- GB/T 18867-2025电子气体六氟化硫
- 社交媒体使用与青少年心理健康的关系研究
- (高清版)DG∕TJ 08-15-2020 绿地设计标准 附条文说明
- 2025年下半年福建漳州片仔癀药业股份限公司招聘96人易考易错模拟试题(共500题)试卷后附参考答案
评论
0/150
提交评论