AJAX入门实例

regist.jsp代码如下:

<%@ page contentType="text/html; charset=utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
		<title>注册页面</title>
		<script type="text/javascript" src="js/ajax.js">
	
</script>
		<script type='text/javascript'>
	function myAlert(strTitle) {
		var message = document.getElementById("myDiv").innerHTML;
		var win1 = new Zapatec.AlertWindow(message, {
			title : strTitle,
			modal : true,
			width : 580,
			height : 330
		});
	}
	function doCheck() {
		var f = document.forms[0];
		if (f.username.value != "") {
			document.getElementById("feedback_info").innerHTML= "系统正在处理您的请求,请稍后。";
			send_request("POST", "checkUsername.jsp?username="+ 
			f.username.value, null, "text", showFeedbackInfo);//第1步:AJAX通过浏览器的内置对象XMLHttpRequest向服务器发出请求。 		} else {
			document.getElementById("feedback_info").innerHTML = "请输入用户名称。";
		}
	}
	function showFeedbackInfo() {
		if (http_request.readyState == 4) { // 判断对象状态
			if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
				document.getElementById("feedback_info").innerHTML = http_request.responseText;
			} else { //页面不正常
				alert("您所请求的页面有异常。");
			}
		}
	}
	//-->
</script>
	</head>
	<body>
		<form name="form1" method="post" action="">
			<table style="font-size: 12px;">
				<tr>
					<td width="80">
						用户名:
					</td>
					<td>
						<input type="text" name="username" onblur="doCheck()">
					</td>
				</tr>
				<tr>
					<td colspan="2">
						<span id="feedback_info" style="color: #FF0000"></span>
					</td>
				</tr>
				<tr>
					<td>
						一级密码:
					</td>
					<td>
						<input type="password" name="pwd">
					</td>
				</tr>
			</table>
		</form>
	</body>
</html>

checkUsername.jsp代码如下:

<%@ page contentType="text/html; charset=utf-8"%>
<%
	String name = request.getParameter("username");//第2步,服务器接受请求并处理请求 	String username = new String(name.getBytes("ISO8859-1"), "gb2312");//2.1,服务器处理请求
	if (username.equals(""))
		out.println("用户名称[" + username + "]低俗不堪!请换一个用户名称注册!");//2.2,服务器将处理结果返回
	else
		out.println("用户名称[" + username + "]符合规范!您可以继续。");
%>

ajax.js代码如下:

//定义XMLHttpRequest对象实例

var http_request = null;

// 定义可复用的http请求发送函数

function send_request(method, url, content, responseType, callback) {// 初始化、指定处理函数、发送请求的函数
	http_request = null;
	// 开始初始化XMLHttpRequest对象
	if (window.XMLHttpRequest) { // Mozilla 、在IE7+、firefox浏览器
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {// 设置MiME类别
			http_request.overrideMimeType("text/xml");
		}
	} else if (window.ActiveXObject) { // IE5、6浏览器
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
			}
		}
	}
	if (!http_request) { // 异常,创建对象实例失败
		window.alert("不能创建XMLHttpRequest对象实例.");
		return false;
	}
	// 以下为第3步:AJAX收到结果,按照你设定的方式解析结果并更改页面内容。 	// alert(responseType.toLowerCase());
	if (responseType.toLowerCase() == "text") {
		// http_request.onreadystatechange = processTextResponse;
		http_request.onreadystatechange = callback;
	} else if (responseType.toLowerCase() == "xml") {
		// http_request.onreadystatechange = processXMLResponse;
		http_request.onreadystatechange = callback;
	} else {
		window.alert("响应类别参数错误。");
		return false;
	}
	// 确定发送请求的方式和URL以及是否异步执行下段代码
	if (method.toLowerCase() == "get") {
		http_request.open(method, url, true);
	} else if (method.toLowerCase() == "post") {
		http_request.open(method, url, true);
		http_request.setRequestHeader("Content-Type",
				"application/x-www-form-urlencoded");
	} else {
		window.alert("http请求类别参数错误。");
		return false;
	}
	http_request.send(content);
}
// 处理返回文本格式信息的函数
function processTextResponse() {
	if (http_request.readyState == 4) { // 判断对象状态
		if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
			// alert(http_request.responseText);
			alert("Text文档响应。");
		} else { // 页面不正常
			alert("您所请求的页面有异常。");
		}
	}
}
// 处理返回的XML格式文档的函数
function processXMLResponse() {
	if (http_request.readyState == 4) { // 判断对象状态
		if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
			// alert(http_request.responseXML);
			alert("XML文档响应。");
		} else { // 页面不正常
			alert("您所请求的页面有异常。");
		}
	}
}


AJAX即"AsynchronounsJavaScriptandXML"(异步JavaScript和XML),AJAX并非缩写词,而是由JesseJamesGaiie创造的名词,是指一种创建交互式网页应用的网页开发技术。

AJAX最根本的原理就是在不刷新页面的情况下访问服务器处理数据,并根据数据的处理结果按你想要的方式对页面做出及时的更改。

具体流程(三大步):

AJAX向服务器发出请求-->服务器接受请求,处理请求并将处理结果返回-->AJAX收到结果,按照你设定的方式解析结果并更改页面内容。

AJAX的核心是JavaScript对象XMLHttpRequest。该对象在InternetExplorer5中首次引入,它是一种支持异步请求的技术。简而言之,XMLHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。


你可能感兴趣的:(Ajax)