<script language="JavaScript">
var XMLHttpReq;
//创建XMLHttpRequest对象
function createXMLHttpRequest() {
if(window.XMLHttpRequest) { //Mozilla 浏览器
XMLHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // IE浏览器
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
}
//发送请求函数
function sendRequest(url) {
createXMLHttpRequest();
XMLHttpReq.open("GET", url, true);
XMLHttpReq.onreadystatechange = processResponse;//指定响应函数
XMLHttpReq.send(null); // 发送请求
}
// 处理返回信息函数
function processResponse() {
if (XMLHttpReq.readyState == 4) { // 判断对象状态
if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
updateList();
} else { //页面不正常
window.alert("您所请求的页面有异常。");
}
}
}
</srcipt>
XMLHttpRequest简介
open() 建立到服务器的新请求
send() 向服务器发送请求
abort() 退出当前请求
getResponseHeader("header") 返回指定首部的串值
setRequestHeader("header","value")把指定首部设置为所提供的值.在设置任何首部之前必须先调用open()
readyState 提供当前HTML的就绪状态
responseText 服务器返回的请求响应文本
responseXML 服务器的响应,表示为XML,这个对象可以解析为一个DOM对象HTTP就绪状态表示请求的状态或情形,它用于确定请求是否已经开始,是否得到了响应或者/响应模型是否已经完成,它还可以帮助读取服务器提供的响应文本或数据是否安全.在Ajax应用程序中需要了解五种就绪状态
0: 请求没有发出(在调用open()之前)
1: 请求已经建立但没有发出(调用send()之前)
2: 请求已经发出正在处理之中(这里通常可以从响应得到内容头部)
3: 请求已经处理,响应中通常有部分数据可用,但是服务器还没有完成响应
4: 响应已完成,可用访问服务器响应并使用它package com.ajax;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class ajaxServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/xml");
StringBuffer sb = new StringBuffer();
sb.append(("<?xml version='1.0' encoding='UTF-8'?>"));
sb.append("<type>");
sb.append("<type_name>AA</type_name>");
sb.append("<type_name>BB</type_name>");
sb.append("<type_name>CC</type_name>");
sb.append("<type_name>DD</type_name>");
sb.append("</type>");
response.getWriter().print(sb.toString());
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>ajaxServlet</servlet-name>
<servlet-class>com.ajax.ajaxServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ajaxServlet</servlet-name>
<url-pattern>/ajaxServlet</url-pattern>
</servlet-mapping> <servlet>
<servlet-name>debugjsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>classdebuginfo</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>debugjsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
var XMLHttpReq;
function createXMLHttpRequest()
{
if(window.XMLHttpRequest)
{
XMLHttpReq = new XMLHttpRequest();
}
else if(window.ActiveXObject) {
try
{
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e)
{
try
{
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){}
}
if(XMLHttpReq == null)
{
return;
}
}
}
function sendRequest(url)
{
createXMLHttpRequest();
XMLHttpReq.open("GET",url,true);
XMLHttpReq.onreadystatechange =processResponse ;
XMLHttpReq.send(null);
}
function processResponse()
{
if(XMLHttpReq.readyState == 4)
{
if(XMLHttpReq.status == 200)
{
var xmlDoc = XMLHttpReq.responseXML;
var message = xmlDoc.getElementsByTagName("type_name");
var vv = message[0].firstChild.nodeValue;
for(var i=1; i<message.length; i++)
{
vv += message[i].firstChild.nodeValue;
}
document.getElementById("tv").innerText=vv;
}
}
}
</script>
</head>
<body>
<button onclick="sendRequest('ajaxServlet')">成功</button>
<span id="tv"></span>
</body>
</html>
var XMLHttpReq;
//创建XMLHttpRequest对象
function createXMLHttpRequest() {
if(window.XMLHttpRequest) { //Mozilla 浏览器
XMLHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // IE浏览器
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
}
//发送请求函数
function sendRequest(url) {
createXMLHttpRequest();
XMLHttpReq.open("GET", url, true);
XMLHttpReq.onreadystatechange = processResponse;//指定响应函数
XMLHttpReq.send(null); // 发送请求
}
// 处理返回信息函数
function processResponse() {
if (XMLHttpReq.readyState == 4) { // 判断对象状态
if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息
updateList();
} else { //页面不正常
window.alert("您所请求的页面有异常。");
}
}
}
</srcipt>
XMLHttpRequest简介
open() 建立到服务器的新请求
send() 向服务器发送请求
abort() 退出当前请求
getResponseHeader("header") 返回指定首部的串值
setRequestHeader("header","value")把指定首部设置为所提供的值.在设置任何首部之前必须先调用open()
readyState 提供当前HTML的就绪状态
responseText 服务器返回的请求响应文本
responseXML 服务器的响应,表示为XML,这个对象可以解析为一个DOM对象HTTP就绪状态表示请求的状态或情形,它用于确定请求是否已经开始,是否得到了响应或者/响应模型是否已经完成,它还可以帮助读取服务器提供的响应文本或数据是否安全.在Ajax应用程序中需要了解五种就绪状态
0: 请求没有发出(在调用open()之前)
1: 请求已经建立但没有发出(调用send()之前)
2: 请求已经发出正在处理之中(这里通常可以从响应得到内容头部)
3: 请求已经处理,响应中通常有部分数据可用,但是服务器还没有完成响应
4: 响应已完成,可用访问服务器响应并使用它package com.ajax;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class ajaxServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/xml");
StringBuffer sb = new StringBuffer();
sb.append(("<?xml version='1.0' encoding='UTF-8'?>"));
sb.append("<type>");
sb.append("<type_name>AA</type_name>");
sb.append("<type_name>BB</type_name>");
sb.append("<type_name>CC</type_name>");
sb.append("<type_name>DD</type_name>");
sb.append("</type>");
response.getWriter().print(sb.toString());
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>ajaxServlet</servlet-name>
<servlet-class>com.ajax.ajaxServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ajaxServlet</servlet-name>
<url-pattern>/ajaxServlet</url-pattern>
</servlet-mapping> <servlet>
<servlet-name>debugjsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>classdebuginfo</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>debugjsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
var XMLHttpReq;
function createXMLHttpRequest()
{
if(window.XMLHttpRequest)
{
XMLHttpReq = new XMLHttpRequest();
}
else if(window.ActiveXObject) {
try
{
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e)
{
try
{
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){}
}
if(XMLHttpReq == null)
{
return;
}
}
}
function sendRequest(url)
{
createXMLHttpRequest();
XMLHttpReq.open("GET",url,true);
XMLHttpReq.onreadystatechange =processResponse ;
XMLHttpReq.send(null);
}
function processResponse()
{
if(XMLHttpReq.readyState == 4)
{
if(XMLHttpReq.status == 200)
{
var xmlDoc = XMLHttpReq.responseXML;
var message = xmlDoc.getElementsByTagName("type_name");
var vv = message[0].firstChild.nodeValue;
for(var i=1; i<message.length; i++)
{
vv += message[i].firstChild.nodeValue;
}
document.getElementById("tv").innerText=vv;
}
}
}
</script>
</head>
<body>
<button onclick="sendRequest('ajaxServlet')">成功</button>
<span id="tv"></span>
</body>
</html>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货