页面内容:
function getXMLHttpRequest()
{
var xmlhttp;
if(window.XMLHttpRequest)// 其他浏览器中 XMLHttpRequest 的创建
{
xmlhttp = new XMLHttpRequest();
if(xmlhttp.overrideMimeType)// 解决部分版本的 Mozilla 的 bug
{
xmlhttp.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) //IE6.0 及以下版本中 XMLHttpRequest 的创建
{
var MSXML =
['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
for(var n = 0; n < MSXML.length; n ++)
{
try{
xmlhttp = new ActiveXObject(MSXML[n]);
break;
}catch(e){}
}
}
return xmlhttp;
}
function check()
{
resultNode=document.getElementById("result");
//1. 获取用户名的值
var username=document.getElementById("username").value;
//2. 获取内置对象 xmlHttpRequest
xmlHttpRequest=getXMLHttpRequest();// 获取 xmlHttpRequest 内置对象
//3. 设置回调函数
xmlHttpRequest.onreadystatechange=callback;// 设置回调函数
//4. 向服务器发送请求
xmlHttpRequest.open("GET","ajaxdemo.do?username=" + encodeURI(encodeURI(username))+"&time="+new Date().getTime(),true);
xmlHttpRequest.send(null);// 发送请求
}
function callback()
{
//5. 回调函数中处理服务器返回的数据
if(xmlHttpRequest.readyState == 4)// 请求的状态。有 5 个值 0= 未初始化, 1= 正在加载, 2= 已加载, 3= 交互中, 4= 完成
{
if(xmlHttpRequest.status == 200)
{
var test=xmlHttpRequest.responseText;// 接受服务器返回的数据
resultNode.innerHTML = test;
} else
{
resultNode.innerHTML = " 服务器故障 ";
}
}
}
<form name="myform" action="login.do" method="get">
请输入姓名 :<input type="text" id="username" name="name" onBlur="check()"/> <input type="button" onClick="check()" value=" 校验用户名 "><br>
<div id="result"></div>
请输入地址 :<input type="text" name="address"/><br>
请输入年龄 :<input type="text"/><br>
<input type="submit" value=" 提交 "><input type="reset" value=" 重置 ">
</form>
Servlet处理端: public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
String username=request.getParameter("username");
username=URLDecoder.decode(username,"utf-8");
UserDao dao=new UserDao(); boolean flag=dao.checkUserName(username); //这是DAO层的数据库查询方法 ,查询username是否已存在。
PrintWriter out=response.getWriter();
if(flag) {
out.println("此用户名可以使用! ");
} else {
out.println("此用户名已经被占用,请更换一个用户名! ");
}
}
以上的是源码。以前做的练习,没有经过整理,有点繁杂,不过很详细。还有因为我是直接将代码粘贴上来的,csdn直接将代码生成了页面,最后不得不有所删减,所以页面上的内容只写了js的一些方法,其实最主要的就是这些,其他的内容大家都懂,