AJAX技术调用Web服务的实现.doc
文本预览下载声明
AJAX技术调用Web服务的实现
摘要:该文实现了AJAX技术对Web Services的调用,改善了由于AJAX技术大量的Web应用所产生的服务器端对事务管理混乱的问题。解决了以服务为中心B/S与C/S相结合的网络应用系统开发模式的核心问题。
关键词:AJAX;Javascript;Web Services
中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)25-7137-02
Impletition of AJAX technology in Web Services
CHEN Yang, LIU Yun-peng
(Jiaozuo University, Jiaozuo 454003, China)
Abstract: In this paper, using AJAX technology in web services is realized. The trouble of worse transaction management on server resulted from using much AJAX technology has gotten much improved. The key problem of Network application development model is solved, which is based on combination of B/S and C/S.
Key words: AJAX; Javascript; Web Services
随着AJAX(Asynchronous Javascript And XML)技术不断的成熟,我们见到了越来越多的富Web应用(Rich Web Application)出现。例如,近两年基于网页的网络游戏。AJAX技术的广泛应用,不但极大的改善了网页的用户体验,而且丰富了网页的应用[1]。
但是,当我们打开一个使用AJAX技术的网页后,AJAX引擎在后台开始运行,对服务器产生的请求也由网页请求转变为事务请求,服务器的网页管理功能也转变为事务管理功能。这样以网页文件的形式对事务进行管理,就显得非常不合适。
我们可以通过Web Services对AJAX引擎请求的事务进行管理,以改善服务器端对事务管理混乱的问题。
1 AJAX技术调用Web Services的分析与设计
我们知道,浏览器发出的请求是基于Http协议的。Web Services与客户端程序进行交互所使用的是SOAP协议,而SOAP协议工作在Http协议之上。XMLHttpRequest对象可以发出Http请求。这也就是说,通过Javascript控制XMLHttpRequest对象产生SOAP消息来调用Web Services是可行的[2]。
由SOAP请求格式我们可知,它与Http请求格式是基本一致的,但我们仍需要通过程序来设定一些内容。在SOAP消息头里需要通过程序设定Content-Type和SOAPAction。Content-Type的值是“text/xml; charset=utf-8”。SOAPAction是所调用的Web Services的Namespace字符串拼接“/” 再拼接所调用的Web Services的方法名字符串。其中Namespace字符串可以从该Web Services的WSDL文档中获得。在SOAP消息体中,我们需要设定所调用的方法名、xmlns值和所调用的方法所需的参数。方法名在是我们已知的,xmlns值就是Web Services的Namespace字符串。至于参数,我们可以以“参数值”这种格式将其转变成XML文档片段即可[3]。
这样,我们可知,调用Web Services,只需要提前知道它的URL地址,所调用的方法名,所调用的方法的参数。这也符合客户端与服务器端低耦合的要求。
从Web Services的WSDL文档中,我们不但可以获得发送SOAP消息所需要的Namespace,还可以获得参数和返回值的数据类型,这样我们就可以将获得的返回数据转换成相应的数据类型。参数我们可以转换成XML文档片段,需要将相应的数据类型转换成字符串型数据。
因此,要在发送SOAP消息前,我们必须先获得该Web Services的WSDL文档。通过程序从获得的WSDL文档中提取所需要的Namespace。然后将WSDL文档和Namespace缓存起来。接着通过程序组成SOAP消息再使用XMLHttpRequest对象发送。将返回的数据通过程序提取结果,并按照WSDL文档中返回值的数据类型进行相应的数据类型转换即可。如果再次
显示全部