现在的位置: 首页 > 综合 > 正文

Ajax实现异步请求实例

2014年11月26日 ⁄ 综合 ⁄ 共 2845字 ⁄ 字号 评论关闭

1.jsp文件

<%@ page pageEncoding="utf-8"
	contentType="text/html;charset=utf-8"
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<title>regist</title>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<link rel="stylesheet" type="text/css" href="css/style.css" />
		<script type="text/javascript">
		function getXhr(){
			var xhr=null;
			if(window.XMLHttpRequest){
				var xhr = new XMLHttpRequest();
			}else{
				xhr= new ActiveXObject('Microsoft.XMLHTTP');
			}
			return xhr;
		}
		var xhr = getXhr();
		function check_userName(){
			var nameNode = document.getElementsByName('name')[0];
			var msgNode = document.getElementById('error_msg');
			var uri = 'check_userName.do?name='+nameNode.value;
			xhr.open('get',encodeURI(uri),true);
			xhr.onreadystatechange=function(){
				if(xhr.readyState==4&&xhr.status==200){
					var txt = xhr.responseText;
					msgNode.innerHTML=txt;
				}else{
					msgNode.innerHTML='验证用户名错误';
				}
			};
			msgNode.innerHTML='正在检查.....';
			xhr.send(null);
		}
		</script>
	</head>
	<body>
		<div id="wrap">
			<div id="top_content">
					<div id="header">
						<div id="rightheader">
							<p>
									2014/07/16
								<br />
							</p>
						</div>
						<div id="topheader">
							<h1 id="title">
								<a href="#">main</a>
							</h1>
						</div>
						<div id="navigation">
						</div>
					</div>
				<div id="content">
					<p id="whereami">
					</p>
					<h1>
						注册
					</h1>
					<form action="regist.do" method="post">
						<table cellpadding="0" cellspacing="0" border="0"
							class="form_table">
							<tr>
								<td valign="middle" align="right">
									用户名:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="name" onblur="check_userName();"/><span id='error_msg'></span>
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									真实姓名:
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="realname" />
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									密码:
								</td>
								<td valign="middle" align="left">
									<input type="password" class="inputgri" name="password" />
								</td>
							</tr>
							<tr>
								<td valign="middle" align="right">
									性别:
								</td>
								<td valign="middle" align="left">
									男
									<input type="radio" class="inputgri" name="sex" value="m" checked="checked"/>
									女
									<input type="radio" class="inputgri" name="sex" value="f"/>
								</td>
							</tr>
							
							<tr>
								<td valign="middle" align="right">
									验证码:
									<img id="num" src="validate" />
									<a href="javascript:;" onclick="document.getElementById('num').src = 'validate?'+(new Date()).getTime()">换一张</a>
								</td>
								<td valign="middle" align="left">
									<input type="text" class="inputgri" name="validate" />
								</td>
							</tr>
						</table>
						<p>
							<input type="submit" class="button" value="Submit »" />
									已经有帐号?<input type="button" class="button" value="Login»" onclick="javascript:location='login.jsp'" />
						</p>
					</form>
				</div>
			</div>
			<div id="footer">
				<div id="footer_bg">
				ABC@126.com
				</div>
			</div>
		</div>
	</body>
</html>

2.服务器端对XMLHttpRequest的处理逻辑





else if(action.equals("check_userName.do")){
			//System.out.println("发送过来XMLhttp");
			String name = req.getParameter("name");
			//System.out.println(name);
			try {
				//System.out.println(userDao.findUserByName(name));
				if(!userDao.findUserByName(name)){
					out.println("用户名可用");
				}else{
					out.println("用户名已存在");
				}
			} catch (SQLException e) {
				
				e.printStackTrace();
			}













3.截图

抱歉!评论已关闭.