<!---->
五、
处
理
请
求
在
这
个示例中,因
为
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
对
象
为
客
户
端与服
务
器之
间
提供了一
种动态
的交互能力。你可以使用
JavaScript
启
动
一个
请
求并
处
理相
应
的返回
值
,然后使用
浏览
器的
DOM
方法更新
页
面中的
数据。
分享到:
相关推荐
### 全面剖析XMLHttpRequest对象 #### 引言:AJAX与XMLHttpRequest的革命 XMLHttpRequest对象是现代网络开发中不可或缺的一部分,它是AJAX(Asynchronous JavaScript and XML)技术的核心,使得网页能够在不重新...
### 全面剖析XMLHttpRequest对象 #### 引言 随着互联网技术的发展,用户对Web应用的需求日益增长。其中,异步JavaScript与XML(AJAX)技术作为一种新兴的技术手段,在实现客户端脚本与服务器之间高效、无缝的数据...
### 全面剖析XMLHttpRequest对象 #### 一、XMLHttpRequest对象简介 XMLHttpRequest是一个非常重要的JavaScript对象,它允许网页向服务器发起异步请求并处理响应数据。这种技术是实现Ajax(Asynchronous JavaScript...
XMLHttpRequest对象是Ajax技术的核心,它是现代Web应用中用于实现客户端与服务器间异步数据交换的关键组件。在不刷新整个页面的情况下,XMLHttpRequest允许开发者通过JavaScript动态更新网页内容,极大地提升了用户...
Ajax 中的 XMLHttpRequest 对象 Ajax 是一种异步的 JavaScript 与 XML 技术,用于在客户端脚本与服务器之间实现数据交互过程。XMLHttpRequest 对象是 Ajax 的技术基础,尽管现在提供了各种 Ajax 框架,但是理解这个...
### 全面剖析XMLHttpRequest XMLHttpRequest是一种在浏览器端实现异步数据请求的关键技术,它为Web应用提供了更丰富的交互体验。本文将深入探讨XMLHttpRequest的相关知识点,包括其工作原理、状态管理以及如何通过...
AJAX最大的特点就是其"异步"性,这意味着当XMLHttpRequest对象的send()方法被调用时,它会立即返回,允许浏览器继续执行其他操作,比如处理用户输入或更新页面的显示,而不会被阻塞等待服务器的响应。这样一来,页面...
接下来,文章通过结合实例的形式,深入剖析了XMLHttpRequest对象的工作原理以及如何在实际开发中有效地使用它。 首先,文章对Ajax和XMLHttpRequest这两个概念进行了区分。Ajax并不是一种新技术,而是依赖于已有的...
3. **创建XMLHttpRequest对象**:所有现代浏览器都内置了XMLHttpRequest对象,可以通过JavaScript代码创建实例。 4. **HTTP请求与响应**:Ajax通过XMLHttpRequest对象发送HTTP请求,并处理服务器返回的响应。 **二...
值得注意的是,正是通过XMLHttpRequest对象,JavaScript得以与服务器进行异步通信,这也是AJAX技术之所以强大的关键所在。 #### 五、AJAX的优势 1. **提升用户体验**:通过局部更新页面内容,减少了页面加载时间,...
3. **源代码分析**: - 函数首先检查 URL 是否包含问号 (`?`),如果包含,则添加 `&`,否则添加 `?`,以便附加查询参数。 - 接下来,函数生成一个随机字符串,以避免缓存问题。在 URL 后添加此随机字符串。 - ...
Ajax技术部分,详细剖析了XMLHttpRequest对象,以及如何使用POST和GET方法提交Ajax请求。Ajax技术是实现Web页面异步交互的关键。 jQuery部分,介绍了jQuery的入门使用,包括jQuery的选择器、对象转换以及事件处理。...