`
peng_jian_ming
  • 浏览: 260120 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Ajax全面剖析XMLHttpRequest对象(四)

    博客分类:
  • AJAX
阅读更多
五、 处理请求

  在这个示例中,因为HTTP方法是GET,所以在服务器端的接收servlet将调用一个doGet()方法,该方法将检索在URL中指定的catalogId参数值,并且从一个数据库中检查它的有效性。

  本文示例中的这个servlet需要构造一个发送到客户端的响应;而且,这个示例返回的是XML类型,因此,它把响应的HTTP内容类型设置为text/xml并且把Cache-Control头部设置为no-cache。设置Cache-Control头部可以阻止浏览器简单地从缓存中重载页面。

public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
 ...
 ...
 response.setContentType("text/xml");
 response.setHeader("Cache-Control", "no-cache");
}

  来自于服务器端的响应是一个XML DOM对象,此对象将创建一个XML字符串-其中包含要在客户端进行处理的指令。另外,该XML字符串必须有一个根元素。

out.println("<catalogId>valid</catalogId>");

  【注意】XMLHttpRequest对象的设计目的是为了处理由普通文本或XML组成的响应;但是,一个响应也可能是另外一种类型,如果用户代理(UA)支持这种内容类型的话。

  当请求状态改变时,XMLHttpRequest对象调用使用onreadystatechange注册的事件处理器。因此,在处理该响应之前,你的事件处理器应该首先检查readyState的值和HTTP状态。当请求完成加载(readyState值为4)并且响应已经完成(HTTP状态为"OK")时,你就可以调用一个JavaScript函数来处理该响应内容。下列脚本负责在响应完成时检查相应的值并调用一个processResponse()方法。

function processRequest(){
 if(xmlHttpReq.readyState==4){
  if(xmlHttpReq.status==200){
   processResponse();
  }
 }
}

  该processResponse()方法使用XMLHttpRequest对象的responseXML和responseText属性来检索HTTP响应。如上面所解释的,仅当在响应的媒体类型是text/xml,application/xml或以+xml结尾时,这个responseXML才可用。这个responseText属性将以普通文本形式返回响应。对于一个XML响应,你将按如下方式检索内容:

var msg=xmlHttpReq.responseXML;

  借助于存储在msg变量中的XML,你可以使用DOM方法getElementsByTagName()来检索该元素的值:

var catalogId=msg.getElementsByTagName("catalogId")[0].firstChild.nodeValue;

  最后,通过更新Web页面的validationMessage div中的HTML内容并借助于innerHTML属性,你可以测试该元素值以创建一个要显示的消息:

if(catalogId=="valid"){
 var validationMessage = document.getElementById("validationMessage");
 validationMessage.innerHTML = "Catalog Id is Valid";
}
else
{
 var validationMessage = document.getElementById("validationMessage");
 validationMessage.innerHTML = "Catalog Id is not Valid";
}

  六、 小结

  上面就是XMLHttpRequest对象使用的所有细节实现。通过不必把Web页面寄送到服务器而实现数据传送,XMLHttpRequest对象为客户端与服务器之间提供了一种动态的交互能力
分享到:
评论

相关推荐

    Ajax深度剖析,XMLHttpRequest对象大揭秘

    在这篇深度剖析中,我们将揭开XMLHttpRequest对象的神秘面纱,探讨其工作原理、常用方法和实际应用。 XMLHttpRequest对象是Ajax技术的基础,它允许JavaScript在页面不刷新的情况下与服务器进行通信。创建一个...

    全面剖析 Ajax XMLHttpRequest对象

    XMLHttpRequest对象是Ajax技术的核心,它是现代Web应用中用于实现客户端与服务器间异步数据交换的关键组件。在不刷新整个页面的情况下,XMLHttpRequest允许开发者通过JavaScript动态更新网页内容,极大地提升了用户...

    全面剖析XMLHttpRequest对象.doc

    ### 全面剖析XMLHttpRequest对象 #### 引言:AJAX与XMLHttpRequest的革命 XMLHttpRequest对象是现代网络开发中不可或缺的一部分,它是AJAX(Asynchronous JavaScript and XML)技术的核心,使得网页能够在不重新...

    全面剖析Ajax的XMLHttpRequest对象.doc

    Ajax 中的 XMLHttpRequest 对象 Ajax 是一种异步的 JavaScript 与 XML 技术,用于在客户端脚本与服务器之间实现数据交互过程。XMLHttpRequest 对象是 Ajax 的技术基础,尽管现在提供了各种 Ajax 框架,但是理解这个...

    全面剖析XMLHttpRequest对象

    ### 全面剖析XMLHttpRequest对象 #### 引言 随着互联网技术的发展,用户对Web应用的需求日益增长。其中,异步JavaScript与XML(AJAX)技术作为一种新兴的技术手段,在实现客户端脚本与服务器之间高效、无缝的数据...

    全面剖析XMLHttpRequest对象.txt

    ### 全面剖析XMLHttpRequest对象 #### 一、XMLHttpRequest对象简介 XMLHttpRequest是一个非常重要的JavaScript对象,它允许网页向服务器发起异步请求并处理响应数据。这种技术是实现Ajax(Asynchronous JavaScript...

    AJAX技术使用XMLHttpRequest对象传递参数的中文乱码问题

    ### AJAX技术使用XMLHttpRequest对象传递参数的中文乱码问题 #### 背景与问题概述 在使用AJAX技术进行前后端数据交互时,经常会出现中文字符编码的问题,尤其是在使用`XMLHttpRequest`对象发送请求的过程中。例如...

    ajax --XMLHttpRequest

    Ajax技术通过XMLHttpRequest对象实现了网页的异步更新,提高了用户体验。在.NET环境中,Ajax功能得到了广泛支持,开发者可以利用各种工具和库来简化开发流程。对于深入学习,分析Ajax.dll的源码有助于理解底层实现,...

    创建XMLHttpRequest对象

    基于以上分析,我们可以将上述方法封装成一个函数,以便在不同的浏览器环境下创建`XMLHttpRequest`对象: ```javascript function createXmlHttpRequest() { var xmlHttp; try { // 尝试使用原生方式创建 ...

    全面剖析xmlhttprequest

    ### 全面剖析XMLHttpRequest XMLHttpRequest是一种在浏览器端实现异步数据请求的关键技术,它为Web应用提供了更丰富的交互体验。本文将深入探讨XMLHttpRequest的相关知识点,包括其工作原理、状态管理以及如何通过...

    Ajax中XmlHttpRequest实例笔记

    **四、文件资源分析** 在提供的压缩包中,我们有以下几个文件: 1. **book.xml**:可能是一个包含书籍信息的XML文件,可以通过Ajax获取并解析,用于动态展示书目信息。 2. **index.jsp**:可能是服务器端的一个JSP...

    XMLHttpRequest对象

    `XMLHttpRequest`对象是实现Ajax的核心技术之一,掌握它的使用方法对于前端开发者来说至关重要。通过对`XMLHttpRequest`对象的理解,我们可以更好地利用Ajax技术提升Web应用的用户体验。希望本文能帮助你快速理解和...

    Ajax通讯原理XMLHttpRequest

    XMLHttpRequest(XHR)对象是Ajax的核心,它允许JavaScript在后台与服务器进行通信,而不会中断用户的界面操作。 ### XMLHttpRequest对象 所有现代浏览器,包括IE5和IE6以上版本,都支持XMLHttpRequest对象。在IE5...

Global site tag (gtag.js) - Google Analytics