<!-- ###############################################################################
使用AJAX对用户名进行验证--begin
####################################################################################-->
<script type="text/javascript">
var xmlHttp;//公共的变量,代表XMLHttpRequest对象
//实例化对象
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp=new ActiveXObject("microsoft.XMLHTTP");
}else{
xmlHttp=new XMLHttpRequest();
}
}
//发送数据
function sendRequest(url){
//alert("1");
createXMLHttpRequest();
//alert("2");
xmlHttp.open("POST",url,true);
//alert("3");
xmlHttp.onreadystatechange = processResponse;
//alert("4");
//使用post方式 发送数据的时候,必须加上这句话,否则数据发送不到服务器
xmlHttp.setRequestHeader("content-type",
"application/x-www-form-urlencoded");
//alert("5");
xmlHttp.send("username="+document.all.username.value);
//alert("6");
}
//接受返回数据
function processResponse(){
/*xmlHttp.readyState返回的5个int数的含义
0: 请求未初始化(还没有调用 open())。
1:请求已经建立,但是还没有发送(还没有调用 send())。
2:请求已发送, 正在处理中(通常现在可以从响应中获取内容头)。
3:请求在处理中;通常响应中已有部分数据可用了,但是服 务器还没有完成响应的生成。
4:响应已完成;您可以获取并使用服务器的响应了。
*/
//alert("7");
if(xmlHttp.readyState==4){
//alert("8");
if(xmlHttp.status==200){
//alert("9");
var message = xmlHttp.responseText;
if("@_#,该用户名已经被可以注册过了,请更换!" == message){
alert(message);
//username为form表单的text对象
document.getElementById("username").select();
document.all.myspan.innerText = "#_@";
}else{
document.all.myspan.innerText = "@_@";
}
//alert("10");
}
}
}
//加载促发函数
function checkUser(){
var username = document.all.username.value;
if("" == username){
alert("您没有输入用户名称!");
document.all.username.select();
return;
}else{
sendRequest("struts2.register!checkUsername.action");
}
}
</script>
<!-- ###############################################################################
使用AJAX对用户名进行验证--end
####################################################################################-->
--------------------------------------------------------------------------------------------
action代码:
/** * 使用Ajax传递的参数 * 注册时检验是否存在该用户,不存在则允许注册 * @return */ public String checkUsername(){ //根据传递过来的username查询数据库,没有查到返回true boolean bool = new UserDAOImpl().checkUsername(username); if(bool){ try { //设置response的编码方式 response.setCharacterEncoding("UTF-8"); //返回给Ajax的信息 response.getWriter().write("@_@,该用户名可以注册!"); } catch (IOException e1) { e1.printStackTrace(); } }else{ try { //设置response的编码方式 response.setCharacterEncoding("UTF-8"); //返回给Ajax的信息 response.getWriter().write("@_#,该用户名已经被可以注册过了,请更换!"); } catch (IOException e1) { e1.printStackTrace(); } } return null; }