




已阅读5页,还剩79页未读, 继续免费阅读
(计算机应用技术专业论文)基于ajax和lucene的web应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学硕士学位论文 摘要 随着w e b 应用的日益广泛和w e b 开发技术的不断发展,以用户体验型网络 服务为特征的w e b 应用代表了当前互联网的发展趋势 传统的因特网以请求响应模式作为基础,因同步性已经对用户造成了妨 碍,故一种采用异步调用的方式实现页面局部刷新的技术a j a x 正在成为 w e b 应用领域的研究热点。 a j a x 通过构建基于j a v a 技术的w e b 应用,打破了使用页面重载的惯例, 使用户操作与服务器响应异步化。服务器不用处理所有的用户请求,有关数据 验证和数据处理可交给a j a x 引擎,当需要从服务器读取新数据时再由a j a x 引 擎代为向服务器提交请求,从而减少网络流量,并使用户可以创建接近本地桌 面应用的直接、高可用、更丰富、更动态的w e b 用户界面。 同时随着网络信息资源的急剧增长,面对w e b 站点上的海量信息人们希望 通过尽可能小的努力迅速跨越严格的分类界限准确地找到所需的信息。搜索引 擎技术及其各种开发工具包正成为计算机工业界和学术界研究和开发的热点。 l u c e n e 是一个纯j a v a 实现的成熟、自由、开源的全文检索工具包。通过 l u c e n e 提供的一套高性能的、可扩展的信息检索工具库,开发者可以快速的将 它集成到w e b 应用系统中,实现针对具体应用的全文检索功能。 若能让a j a x 和l u c e n e 在w e b 应用中协同工作,就能进一步优化现有的 w e b 应用模式,提升w e b 应用系统表现力和用户体验。本文的研究正是由此展 开。论文在对a j a x 技术和l u c e n e 工具包研究的基础上给出了a j a x 和l u c e n e 在w e b 开发中具体应用。主要包括两个方面:研究了a j a x 的实现框架d w r 在此基础上改进了传统的基于m v c 模式的w e b 应用框架,提高了w e b 应用 系统的开发效率和服务性能;并对l u c e n e 工具包提供的分析器进行扩展和重 写,弥补了l u c e n e 在中文支持方面的不足,继而给出了一个适用于长江航道局 信息化二期工程固定征稽子系统的w e b 站点内全文搜索引擎工具,缓解了数据 库服务器的压力,提高了检索结果的精确度。 最后结合实际项目对基于a j a x 技术和l u c e n e 技术的w e b 应用给出了总体 框架的设计和典型场景的实现,其中重点讨论了如何使用a j a x 技术实现w e b 应用中数据的动态刷新,以及整合a j a x 技术与l u c e n e 技术实现具有更好用户 体验的站点内检索引擎。 关键词:a j a x ,l u c e n e ,异步调用,d w r ,m v c , 武汉理工大学硕士学位论文 a b s t r a c t w i t ht h ep o p u l a r i z a t i o no fw e ba p p l i c a t i o na n dt h ec o n t i n u o u sd e v e l o p m e n to f w e b t e c h n o l o g y ,w e b - b a s e dn e t w o r ks e r v i c e sc h a r a c t e r i z e db yu s e re x p e r i e n c es t a n d f o rc u r r e n tt r e n do ft h ei n t e r n e td e v e l o p m e n t t r a d i t i o n a lw e b 印p l i c a t i o ni sb a s e do nr e q u e s t r e s p o n s em o d e ;i tc o u l d n t p r o v i d ea b e t t e ru s e re x p e r i e n c eb yi t ss y n c h r o n o u s 。t h e nan e wt e c h n o l o g yc a l l e d a xw h i c ha d o p t sa s y n c h r o n o u sc a l lm e t h o dt or e a l i z et or e f r e s hp a r t i a lw e bp a g e , h a sg r a d u a l l yb e c o m et h eh o t s p o to ft h ew e ba p p l i c a t i o n a j a xo v e r t h r o wt h et r a d i t i o no fr e l o a d i n gp a g e ,r e a l i z es y n c h r o n i s mb e t w e e n u s e r so p e r a t i o na n ds e r v e r sr e s p o n db yc r e a t i n gw e ba p p l i c a t i o nw h i c hb a s eo nj a v a u s i n ga j a ) 【w en e e d n ts u b m i ta l lr e q u e s t st os e r v e r , a j a 】【e n g i n ew i l ld e a lw i t hd a t e v a l i d a t i o na n ds u b m i tr e q u e s ti n s t e a do fa j a xi t s e l fi ft h e r ei sn e e dt or e a dd a t af r o m s e r v e r s oi tc a nr e d u c en e t w o r kt r a f f i ca n dp r o v i d eaw e b & a s e da p p l i c a t i o n sw h i c h h a sh i g h e ri n s t a n tr e s p o n s i b i l i t y ,b e t t e ri n t e r a c t i v ea b i l i t y ,c r e a t es e a m l e s su s e r e x p e r i e n c eo fm o s to t h e rd e s k t o pa p p l i c a t i o n s m e a n w h i l e ,a l o n gw i t ht h er a p i dg r o w t ho fi n f o r m a t i o no nw c b ,w h e nf a c et o t h eg i g a n t i ca m o u n to fw e bi n f o r m a t i o nw en e e dt ob ea b l et om a k ef l e x i b l e , f r e e f o r m ,i n s t a n tq u e r i e sw h i c hc a nq u i c k l yc u ta c r o s sr i g i dc a t e g o r yb o u n d a r i e sa n d f i n de x a c t l yw h a tw e r el o o k i n gf o rw h i l e r e q u i r i n gt h el e a s te f f o r t t h ee r n c r g e n c co f s e a r c he n g i n e ss o l v e st h i sp r o b l e m s os e a r c he n g i n et e c h n o l o g yn o wb e c o m i n gt h e h o t s p o to f r e s e a r c ha n dd e v e l o p m e n tb o t hi nc o m p u t e ri n d u s t r ya n da c a d e m i cw o r l d l u c e n e ,am a t u r e ,f r e e ,o p e n - s o u r c e ,f u l l t e x tr e t r i e v a le n g i n et o o l k i tr e a l i z e db y p u r ej a v a u s i n gl u c e n e sh i 曲p e r f o r m a n c e , s c a l a b l ei n f o r m a t i o nr e t r i e v a l ( i r ) l i b r a r yw ec o u l da b l et ob ei n t e g r a t e di n t oo u ra p p l i c a t i o nr a p i d l y i fw ec a na p p l yt h ea j a xt e c h n i q u ec o o p e r a t ew i t hl u c e n ei tc a l lt a k ea d v a n t a g e o fb o t hp r e v a l e n c et oo p t i m i z et h ee x i s t i n gw e ba p p l i c a t i o n s ,i m p r o v et h es y s t e m s s e r v i c ep e r f o r m a n c e f i r s t l y , t h i sp a p e rr e s e a r c h e sa n da n a l y z e sd e e p l yi n t o t h ec o m p o n e n t , r e a l i z a t i o np r i n c i p l e sr e a l i z ep r o c e s so fa j a xa n dl u c e n e t h e ni td i s c u s s e sh o wt o l i 武汉理工大学硕士学位论文 a p p l ya j a xa n dl u c e n ei n t ow e ba p p l i c a t i o n b a s e do nt h er e s e a r c ho fa j a x sr e a l i z e f r a m e w o r k ,t h i sp a p e re x p l o r i n gt h ec o m b i n a t i o no fd w rf r a m e w o r ka n ds t r u t s f r a m e w o r kt oa m e l i o r a t e st h et r a d i t i o n a lw e ba p p l i c a t i o n ,i m p r o v et h ee f f i c i e n c yo f s y s t e m sd e v e l o p m e n ts p e e da n do p t i m i z et h es y s t e m ss e r v i c ep e r f o r m a n c e t h i s p a p e ra l s oe x p a n da n dr e w r i t et h ee x i s t e n tl u c e n e sa n a l y z e r , p r o v i d ea e f f e c t i v e m e t h o do fc h i n e s ew o r ds e g m e n t a t i o n ,t h e nd e v e l o pas e a r c he n g i n ew h i c ha d a p tt o t h ep r a c t i c a lp r o j e c t , a l l e v i a t e st h ed a t a b a s es e r v e r sp r e s s u r e , i m p r o v e st h es e a r c h e n g i n e sa c c u r a c y l a s t l y , c o m b i n i n gt h ea p p l i c a t i o no fap r a c t i c a lp r o j e c t ,t h i sp a p e rp r o v i d e sa w e ba p p l i c a t i o n sd e t a i lr e a l i z a t i o nw h i c hb a s e do na j a xa n dl u c e n e i tm a i n l y i n c l u d e sh o wt or e a l i z et h ed y n a m i cr e q u e s t i n ga n dd y n a m i cs u b m i t t i n gb yt h ed w r a n ds t r u t sc o m b i n e df r a m e w o r k , a n daw e bs e a r c he n g i n ew h i c hh a sb e t t e ru s e r e x p e r i e n c eb yu s i n ga j a xa n dl u c e n et e c h n i q u e k e yw o r d s :a j a x ,a s y n c h r o n o u sc o m m u n i c a t i o n ,d w r ,m v c ,l u c e n e i i i 独创性声明 本人声明,所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论丈中作了明确的说明并表示了谢意。 研究生签名:二耻日期 关于论文使用授权的说明 2 艘g k 吃 本人完全了解武汉理工大学有关保留、使用学位论支的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部内容, 可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 研究生签名:二牡导师签 期型尘! ! 武汉理工大学硕士学位论文 1 1 研究背景及意义 第1 章引言 因特网从最早只有基于文本的简单浏览器到如今成为商务和信息的中心经 历了翻天覆地的重大改变。w e b 应用已经成为信息时代不可或缺的一部分。不 断丰富的w e b 技术给w e b 开发提供了无限的发挥空间。现在有很多办法来创建 动态的w e b 应用,若想让应用真正得深入人心,就必须在用户体验上大做文章。 r i a ( r i c hi n t e m e ta p p l i c a t i o n ,丰富的互联网应用程序) l l j ,一种具有高度 互动性和丰富用户体验的网络应用程序的出现就是为了满足w e b 使用者更高用 户体验的需求。r i a 的出现为w e b 应用指明了一个方向:功能更强大,更好交 互性,更高用户体验,易于部署,适用方便的应用。 因特网以请求响应模式作为基础,由此带来的同步性已经对用户造成了妨 碍。用户希望得到一个功能更完备的应用,开发人员不想把可执行文件逐个地 部署到数以千计的工作站上,一种已得到广泛认可的r i a 技术a j a x 的出现 很好了解决了这类问题。a j a x 不只是一个特定的技术,更应算是一种技巧,应 用和测试框架再加上更优秀的工具支持,它减轻了开发人员的负担。 与a j a x 相关的x m l h t t p r e q u e s t 对象( x h r ) 早在1 9 9 9 年春天m5 发布 的时候就出现了,是作为a c t i v ex 控件出现的。原先,x i - i r 对象只在m 中得 到支持,因此限制了它的使用。但从m o z i l l a l 0 和s a f a r i l 2 开始,对x h r 对象 的支持已经开始普及。直到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 r e t t 发表了一篇名为a a x :an e w a p p r o a c h t ow 曲a p p l i c a t i o n s ) ) 的文章【2 】,a j a x 才算是正式出世了。文中他以一些新技术 和g o o g l e 项目为例,说明了传统的基于桌面的用户交互模型如何应用于w e b 上,讨论了如何消除桌面与w e b 应用之间的界限,同时给出了相应的交互模型, 并将实现这种应用的技术命名为: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 j a x 的提出为w e b 开发提供了一种全新的w e b 应用的设计方法。 目前,相对通用网页信息检索的发展,为具体应用定制的w e b 应用系统在 信息检索上发展较为缓慢,传统的对w e b 站点内信息进行全文检索常用的办法 武汉理工大学硕士学位论文 是使用l i k ek e y w o r d 查询替代,但传统的关系数据库只具简单的建模能力, 数据类型也有限,只能在信息量比较少的情况下使用此法,而一旦面对站点内 数据海量和非结构化的特征时,检索速度会急剧下降,严重影响系统性能。 全文检索技术的产生为解决非结构化数据的存储、检索闯题提供了解决方 案。全文检索技术产生于西方国家,相对于中文而言,西文更容易使用基于分 词的全文检索技术,在检索算法上也简单的多。8 0 年代中期,中国的信息产业 以微机为起点渐渐发展壮大起来,中文信息量飞速增长,中文全文检索技术也 开始得到越来越多的应用和发展,具有代表性的是中国科学院计算技术研究所 在多年研究基础上,耗时一年研制出了基于多层隐马模型的汉语词法分析系统 i c t c l a s ( i n s t i t u t eo fc o m p u t i n gt e c h n o l o g y , c h i n e s el e x i c a la n a l y s i ss y s t e m ) 3 1 , 该系统的功能有:中文分词;词性标注;未登录词识别。分词正确率高达 9 7 5 8 ( 最近的9 7 3 专家组评测结果) ,基于角色标注的未登录词识别能取得高 于9 0 召回率,其中中国人名的识别召回率接近9 8 ,分词和词性标注处理速 度为3 1 5 k b s 。 l u c e n e 提供了一个用来实现全文检索引擎的全文检索引擎的架构,它的原 作者d o u gc u t t i n g 是一位资深全文检索专家,曾经是n 搜索引擎的主要开 发者,后在e x c i t e 担任高级系统架构设计师,目前从事于一些i n t e m e t 底层架 构的研究。最初d o u gc u t t i n g 将l u c e n e 发表在自己的个人主页上,2 0 0 0 年3 月将其转移到了s o u r c e f o r g e 上,并于2 0 0 1 年1 0 月捐献给a p a c h e 软件基金会, 使l u c e n e 成为j a k a r t a 的一个子工程【4 j 。 l u c e n e 是一个开放源代码的全文检索引擎工具包,提供了完整的查询引擎 和索引引擎及部分文本分析引擎( 英文与德文两种西方语言) 。l u c e n e 的目的 是为软件开发人员提供一个简单易用的工具包,以方便地在目标系统中实现全 文检索的功能,或者是以此为基础建立完整的全文检索引擎。 1 2 发展现状 说到a j a x 的发展,g o o g l e 公司不可不提。正是g o o g l e 依据a j a x 的原理推 出的g o o g l em a p ,g o o g l es u g g e s t 等一系列产品才让人们意识到a j a x 的魅力。 其中g o o g l em a p 界面完全基于a j a x 技术来构造,提供了远远优于其他竞争对 手的地图服务交互体验。其实这些神奇的应用并没有采用新的技术和算法,可 2 武汉理工大学硕士学位论文 以很容易的引入w e b 开发中,所以自从a j a x 提出以后就被广泛支持。微软首 先在自己的n e t 框架中给出了基于a j a x 的扩展和实现,而后2 0 0 6 年2 月包括 i b m ,g o o g l e ,雅虎,甲骨文和b e a 系统等许多公司宣布共同支持一个开源软 件计划”o p e na j a x 以支持和推广a j a x 技术【5 】。值得一提的是这是自u n i x 诞生 以后第一次有如此多的公司响应同一计划,由此可见a j a x 魅力非凡。 随着a j a x 的不断发展,它所涵盖的技术也变得越来越广泛。例如相比最原 始的a j a x 定义,现在又加入了新的数据交换格式j s o n t 6 ,可升级矢量图像s v g , 矢量可标记语言v m l 等等。a j a x 已经成为一种全新的设计模式,w 曲2 0 t 7 】的 到来,更是使a j a x 成为个性化和自主化网络应用强有力的典型技术。 l u c e n e 经过多年的发展,在全文检索领域已经有了很多的成功案例,并积 累了良好的声誉。基于l u c e n e 的全文检索产品和应用l u c e n e 的项目在世界各 地已经非常之多,其中比较典型的列举如下【s 】。 e c l i p s e :主流j a v a 开发工具,其帮助文档采用l u c e n e 作为检索引擎。 w e b s p h e r e :i b m 公司的商业软件,采用l u c e n e 作为帮助子系统的全 文索引引擎。 j i v e :知名论坛系统,其检索功能基于l u c e n e 。 i f i n d e r :出自德国的网站检索系统,基于l u c e n e 。 m i t d s p a c ef e d e r a t i o n :一个文档管理系统。 国内外采用l u c e n e 作为网站全文检索引擎的也有很多,比较知名的有: h t t p :w w w b l o g c h i n a e o m w e b l u c e n e ; h t t p :w w w i o f f e r c o m h t t p :w w w t a m i n n e o m h t t p :s e a r c h s o u f u n c o r n 1 3 研究意义 w e b 的广泛使用解决了c s 应用程序部署和更新的困难。但是彤s 应用程 序受制于h t m l 的限制,无法像c s 那样使用丰富的效果带来良好的用户体验。 这使得w e b 应用似乎无法拥有桌面应用程序的丰富功能和响应能力。a j a x 的出 现提供了一个w e b 应用开发的新理念,它充分诠释了“跨浏览器异步胖客户端 动态h t m l 客户服务技术”( c r o s sb r o w s e ra s y n c h r o n o u sr i c hc l i e n td y n a m i c h t m lc l i e n ts e r v e rt e c h n o l o g y ) ,a j a x 将静态w e b 页面转变为充满交互的应用, 3 武汉理工大学硕士学位论文 在不牺牲w e b 应用程序部署的简单性的同时,将“胖客户端应用程序部署到客 户端,实现能力更加丰富和智能的客户端应用,将一直以来都期望在以前c s 架构中实现的功能迁移到b s 架构中,并且通过w 曲自身的优点实现更好的用 户体验。 a j a x 引发了我们对当前w e b 应用理念的思考。对于传统的w e b 应用,我 们要正确地分析其特点和优点,同时加以不断地改进才能使w 曲应用得以升华。 从架构的角度来看,a j a x 模式的w e b 应用并不仅仅是x m l h t t p r e q u e s t 9 】或者 异步传输无刷新【1 0 l w e b 应用的代言,a j a x 模式的系统架构是复杂多变的,它可 以包含很多用于处理待定编码任务的小模式( 如f a c a d e ,a d a p t e r ,o b s e r v e r ) , 也可以是一个完整的用来组织整个应用的模式( 如m v c ) 。在对a j a x 的w e b 应用进行分析时,即使是对于传统的m v c 模式,在加入了a j a x 后也发生了变 化。a j a x 使我们从一个全新的视角来看w e b 开发。让人们意识到前台客户端的 开发也具有同样的研究价值。 当前种类繁多的新开发框架的出现给a j a x 开发带来了便利,同时也使它处 于一种混沌状态。如何将a j a ) 【技术应用于企业级的w e b 应用中是一个非常值 得研究的问题。本文研究的研究重点之一就是如何使将a j a x 技术整合进现在流 行的基于m v c 设计模式的s t r u t s 框架中,提高w e b 应用系统的开发效率和服 务性能,实现丰富的企业级应用程序。 模糊查询相对数据库的精确查询是一个非常不确定的问题,这使得大部分 的关系数据库对全文检索的支持有限。l u c e n e 最核心的特征就是通过特殊的索 引结构解决了关系数据库在全文检索机制方面的问题,l u c e n e 提供了很多便于 扩展的接口,非常方便针对具体应用定制不同的检索机制。本文的另一个研究 重点就是对l u c e n e 工具包进行扩充和重写,实现针对长江航道局航道养护费征 稽管理系统中固定征稽子系统的站点内全文检索的检索工具定制,并且结合 a j a x 技术做了一些改进,以加强搜索界面的交互性和用户友好性。 1 4 课题来源及研究内容 本课题的项目背景源于交通部长江航道局信息系统二期工程项目中的固定 征稽子系统。系统的主要功能包括长江干线所有船舶航道养护费的征稽及相关 业务的综合性信息管理。 系统整体结构基于b s 模式,系统的物理分布是:在总局设有一台中心服务 4 武汉理工大学硕士学位论文 器,下面各个基层站点设有两百多台机器,基层站点的计算机通过专门用v p n 架设的内网与总服务器连同,并使用浏览器访问中心站点服务器。系统需求庞 杂,要求实现许多逻辑复杂的业务,典型的是本课题着重研究的统缴业务,针对不 同的情况会有许多不同的业务数据处理逻辑,若采用传统的w e b 应用框架来设 计,则“请求响应刷新”的过程会很多,整个页面的重新加载的次数也会随之增加, 给服务器造成很大压力,网络流量大大增加,用户使用起来非常不便。 为了缓解服务器端的压力,充分调用客户端的闲置资源,最大程度上减少网 络流量,增强用户体验,本系统必须采用具有高度互动性和丰富用户体验的开发 技术,a j a x 技术无疑是首选。又由于传统的j 2 e e 多层企业应用框架使得代码 庞大,层与层之间的控制关系复杂,系统在整体架构设计中将a j a x 技术的实现 框架d w r 与基于m v c 模式的s t r u t s 框架进行整合,使整个系统的层次分明, 易于开发,可维护性强。 本系统在长江航道局各个办公站点分布,具有站点内信息发布的功能,能 及时上传更新最新的办公信息。系统要求提供对站点内信息查询的功能,但是 如果采用传统的关系数据库,当用户进行多关关键字模糊查询时,l i k e 对数据 库性能的危害是非常大的,所以建立一个高效的检索机制是非常必要的。本系 统对l u c e n e 这个全文检索引擎工具包进行了扩展和重写,并给出了一个适合长 江航道局站点内信息全文检索的的检索工具。 本课题研究的主要目的是将a j a x 技术应用到基于m v c 模式的s t r u t s 开发 框架中,以构造一个能充分利用客户端资源的应用系统,使系统代码清晰,更于易 维护和扩展。此外对l u c e n e 检索引擎工具包进行重写,实现对站点内信息的全 文检索功能,解决关系数据库由于模糊查询的瓶颈对全文检索支持有限的问题。 本课题具体的研究内容如下: ( 1 ) 在深入研究组成a j a x 的四个关键技术、a j a x 的异步通信原理及其框架 模型的基础上给出了a j a x 技术在w e b 应用中的实现机制。 ( 2 ) 分析a j a x 技术的实现框架d w r ,并将其与基于m v c 模式的s t r u t s 开 发框架相结合,构造一个能充分利用客户端资源的应用系统,使系统代码清晰, 变得易于维护和扩展。 ( 3 ) 深入研究l u e e n e 的系统结构和关键接口,对l u c e n e 的分析器进行重写, 给出一个适合本系统的语言分析工具,从而解决传统关系数据库多关键字模糊 查询的瓶颈,实现站点内信息的全文检索,并结合a j a x 技术,使搜索界面具有 更好的交互性和用户友好性。 5 武汉理工大学硕士学位论文 第2 章a j a x 技术研究 a j a x 可以让开发人员构建基于j a v a 技术的w e b 应用,使用客户端脚本与 w e b 服务器交换数据,打破了使用页面重载的惯例。这样,w e b 页面不用打断交 互流程进行重新加载,就可以动态地更新。本课题旨在利用a j a x 创建更接近 本地桌面应用的直接、高可用、更丰富、更动态的w e b 应用。 2 1a j a x 概述 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 ) i t l 是结合了j a v a 技术、x m l 以 及j a v a s c r i p t 等的编程技术,它是一种集成的方法:使用几种现有技术包括 级联样式表( c s s ) 【1 2 】、j a v a s e r i p t 、x h t m l 、x m l 和可扩展样式语言转换( x s l t ) 开发外观及操作类似桌面软件的w e b 应用软件。具体来说a j a x 包含了以下一 些内容【1 3 1 : h t m l x h t m l t l 4 1 ( 可扩展超文本标记语言,e x t e n s i b l eh y p e r t e x t m a r k u pl a n g u a g e ) :主要的内容表示语言,编写结构化的w e b 页面; c s s ( 层叠样式表,c a s c a d i n gs t y l es h e e t ) :为h t m i j x h t m l 提供文 本格式定义【1 5 】: d o m ( 文档对象模型,d o c u m e n to b j e c tm o d e l ) 1 6 】:对已载入的页面动 态更新,是进行动态显示和交互的基础; x m l ( 可扩展标记语言,e x t e n s i b l em a r k u pl a n g u a g e ) :进行数据交互的 格式; x s l t ( 可扩展样式表语言转换,e x t e n s i b l es t y l e s h e e t l a n g u a g e t r a n s f o r m a t i o n ) 【1 7 1 :用于将x m l 转换为x h t m l ,并用c s s 修饰其样 式,从而实现数据和页面显示的完全分离; x m l h t t p r e q u e s t :主要通信代理,用于进行异步数据的交互,是实现 a j a x 应用的核心技术: j a v a s c r i p t :是a j a x 应用在客户端使用的脚本语言,绑定和处理所有 数据。 6 武汉理工大学硕士学位论文 a j a x 最大的特点就是能够使用户操作与服务器响应异步化。使得并不是所 有的用户请求都提交给服务器,有关数据验证和数据处理都交给a j a x 引擎来 做,当需要从服务器读取新数据时再由a j a x 引擎代为向服务器提交请求,工作 原理相当于在用户和服务器间加了个中间层。如图2 1 所示。 图2 - 1 传统w e b 应用模型与a j a x 模型的比较 2 2 实现a j a x 的相关技术 a j a x 不是单一的技术,而是四种技术的集合。它们分别是: x m l h t t p r e q u e s t 、j a v a s c r i p t ,d o m 以及c s s 。如图2 - 2 所示。 j a v a s c f i p t 定义了业务规则和程序流程。应用程序使用x m l h t t p r e q u e s t 对 象以后台方式从服务器获得数据,通过d o m 和c s s 来改变界面的外观。 7 武汉理工大学硕士学位论文 图2 - 2 a j a x 的四个主要组件 2 2 1 x m l h t t p r e q u e s t 对象 不刷新页面就能与服务器进行交互是a j a x 最大的特点。这个重要特点主要 归功于于x m l h t t t l r e q u e s t 对象。使用x m l h t t p r e q u e s t 对象使得w e b 应用程 序像w i n d o w s 应用程序一样,能够及时响应用户和服务器之间的交互,不必进 行页面的刷新或者跳转并且能够进行一系列的数据处理,这些功能可以缩短用 户的等待时间以及w e b 的等待时间,同时减轻服务器的负载。 最早在i e 5 中x m l h t t p r e q u e s t 被实现为a c t i v e x 组件。不过由于当时只能 在m 中使用它,所以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 对象功能的强大,最近m o z i l l a l 0 和s a f a r i l 2 已把它作为事实 上的标准。但它还不是一个w 3 c 标准,所以在不同浏览器上的表现可能会不同, 但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 对象向服务器端发送请求以及处理响应之前,要 在j a v a s e r i p t 代码中创建一个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 3 c 标准,因此不同的浏览器会使用不同的方法来创建x m l h t t p r e q u e s t 对 象的实例。x m l h t t l l r e q u e s t 在也浏览器中被实现为一个a c t i v e x 对象,而其 他一些浏览器( 比如s a f a r i 和o p e r a ) 会把x m l h t t p r e q u e s t 对象实现为一个本 地的j a v a s e r i p t 对象。在程序中创建x m l h t t p r e q u e s t 对象之前要先对浏览器进 8 武汉理工大学硕士学位论文 行判断。下面代码显示了在不同浏览器中使用j a v a s e r i p t 代码来创建 x m l h t t p r e q u e s t 对象的编程方法。 v a t r e q ; f u n c t i o nc r e a t e r e q u e s t 0 i f ( w i n d o w a c t i v e x o b j e c t ) r e q - - n e wa c t i v e x o b j e c t ( m i c r o s o f t x m l h t t p ) ;使用较老版本的m i c r o s o f t 浏览器创建m i c r o s o f t 兼容的对象( m i c r o s o f t x m l h t t p ) e l s ei f ( w i n d o w x m l h t t p r e q u e s 0 r e q - - n e wx m l h t t p r e q u e s t 0 ;仓s 建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 对象在不同的浏览器上能够相互兼容,所以可以使 用相同的方法来对x m l h t t p r e q u e s t 对象的属性和方法【1 8 】进行访问,不管这 个对象是用什么方法创建的,这样大大简化了开发过程。x m l h t t p r e q u e s t 对象 的常用方法和属性如表2 1 ,2 2 所示。 表2 - 1x m l h t t p r e q u e s t 对象的一些常用方法 方法描述 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 t p 请求的所有响应首部作为键 值对返回 g e t r e s p o n s e h e a d e r 0 返回指定首部的串值 o p e n ( m e t h o d , u 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 。这个方法还 包括三个可选的参数 s e n d ( d o 向服务器发送请求 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 ( ) 9 武汉理工大学硕士学位论文 表2 - 2x m 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 个可取值:o = 未初 始化,1 = 正在加载,2 = 亦加载,3 = 交互 中,4 = 完毕 r e p o n s e t e x t 服务器的响应,表示为一个串 r e 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 1 r p 状态码的相应文本( o k ,或n o t f o u n d ( 未找到) ,等等) 2 2 2j a v a s c r i p t j a v a s c r i p t 是一种基于对象的语剖2 0 】,它通过操作对象来完成各种任务。在 编写j a v a s e d p t 程序时,认为与浏览器操作相关的一系列对象是一组相互关联 的对象,它们以分层方式组织。与浏览器操作相关的各种对象组合起来称作浏 览器对象模型,j a v a s c r i p t 使用的浏览器对象模型如图2 3 所示。 图2 3j a v a s c r i p t 的浏览器对象模型 j a v a s c r i p t 是具有安全性能的脚本语言,使用它的目的是与h t m l 超文本标 记语言、j a v a 脚本语言一起实现在一个w e b 页面中链接多个对象,与w e b 客 户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准 的h t m l 语言中实现的。它的出现弥补了h t m l 语言的缺陷,它是j a v a 与 1 0 武汉理工大学硕士学位论文 h t m l 折衷的选择,具有以下几个基本特点: ( 1 ) j a v a s c r i p t 是一种脚本语言。它采用小程序段的方式实现编程,在程序运 行过程中被逐行地解释。它与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 基本语句和控制流 之上的简单而紧凑的设计,从而对于学习j a v a 是一种非常好的过渡。其次它的 变量类型是采用弱类型,并未使用严格的数据类型。 ( 4 ) 安全性。j a v a s c r i p t 是一种安全性语言,它不允许
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教部编版六年级上册京剧趣谈教案配套
- 七年级信息技术上册 第十一课时资源管理工具(一)教学设计
- 2024吉林省能源投资集团有限责任公司招聘33人笔试参考题库附带答案详解
- 成品放行规程培训
- 人教统编版必修 上册虞美人教案及反思
- 信息技术与数学学科的融合教学-用Python作二次函数图像教学设计2024-2025学年人教版九年级上册第22章
- 2024内蒙古中铝集团包头铝业有限公司新能源项目开招聘47人笔试参考题库附带答案详解
- 厂级安全教育培训
- 电力安规变电部分培训
- 一年级语文上册 课文 3 11《项链》教学设计 新人教版
- GB/T 26354-2025旅游信息咨询服务
- 情绪的管理课件
- 2025年中国工业X射线检测设备行业市场集中度、企业竞争格局分析报告-智研咨询发布
- 重难点05 涉及二次函数的图形变化类问题与二次函数有关的创新类问题(2种命题预测+77种题型汇-总+专题训练+3种解题方法)(解析版)
- 江苏省外国语学校2024-2025学年度高二下学期期中考试历史试题
- 职工维权知识培训课件
- 精神分裂症个案护理汇报
- 《制作七巧板》教学设计-2024-2025学年五年级上册劳动浙教版
- 2024银行春招招聘解析试题及答案
- 四川达州历年中考作文题与审题指导(2004-2024)
- 第15课《青春之光》课件-2024-2025学年统编版语文七年级下册
评论
0/150
提交评论