使用Ajax异步通信可以完成
js代码如下:
/*** 获取异步通信对象 XMLHttpRequest
*/
function getXMLHttpRequest(){
if(window.ActiveXObject)
// ie7+
xmlHttp = new ActiveXObject(Microsoft.XMLHTTP)
else if(window.XMLHttpRequest)
// w3c 标准
xmlHttp = new XMLHttpRequest()
else
// ie5,ie6
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP")
return xmlHttp
}
/**
* 结果处理器
*/
function handler(){
if(xmlHttp.readystate == 4){
// 服务器返回200表示正常处理请求
if(xmlHttp.statu == 200){
// 是否是true由Servlet的返回值决定, request.getWriter().print("true")
if(xmlHttp.ResponseText.trim() == "true"){
alert("userName is exists!")
}else{
alert("userName is OK")
}
}else{
// 服务器响应代码不是200, 表示Servlet处理请求时出现异常
alert("server error, StatuCode:"+xmlHttp.statu)
}
}
}
/**
* 事件触发函数
* @param userName 被检测用户名
* @param URL 用于处理异步通信的Servlet的URL地址
*/
function checkUserName(userName, url){
// url示例: /ObjName/servlet/CheckUserName
// 需要把参数带给Servlet
url = url + "?userName=" + userName
// 获取xmlHttp
xmlHttp = getXMLHttpRequest()
// 设置异步通信的结果处理器函数, 结果回调函数
xmlHttp.readystateonchange = handler
// 开启异步通信连接
xmlHttp.open("GET", url, true)
// 向Servlet发起请求
xmlHttp.send(null)
}
希望能帮助你