利用AJAX来检测用户名是否已经被注册

利用AJAX来检测用户名是否已经被注册

http://blog.csdn.net/duyifei01/article/details/52133542

原创 2016年08月05日 23:55:47

实现功能:

在注册表单中,当用户填写了用户名后,把光标移开后,会自动向服务器发送异步请求。服务器返回true或false,返回true表示这个用户名已经被注册过,返回false表示没有注册过。客户端得到服务器返回的结果后,确定是否在用户名文本框后显示“用户名已被注册”的错误信息!

过程分析:

 

(1) regist.jsp页面中给出注册表单;

(2)在username表单字段中添加onblur事件,调用send()方法;

(3)send()方法获取username表单字段的内容,向服务器发送异步请求,参数为username;

(4)RegistServlet:获取username参数,判断是否为“test”,如果是响应true,否则响应false;

代码的实现:

 

regist.jsp

 

[javascript] view plain copy
 
  1. <script type="text/javascript">  
  2. function createXMLHttpRequest() {  
  3.     try {  
  4.         return new XMLHttpRequest();  
  5.     } catch (e) {  
  6.         try {  
  7.             return new ActiveXObject("Msxml2.XMLHTTP");  
  8.         } catch (e) {  
  9.             return new ActiveXObject("Microsoft.XMLHTTP");  
  10.         }  
  11.     }  
  12. }  
  13.   
  14. function send() {  
  15.     var xmlHttp = createXMLHttpRequest();  
  16.     xmlHttp.onreadystatechange = function() {  
  17.         if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {  
  18.             if(xmlHttp.responseText == "true") {  
  19.                 document.getElementById("error").innerHTML = "用户名已被注册!";  
  20.             } else {  
  21.                 document.getElementById("error").innerHTML = "";  
  22.             }  
  23.         }  
  24.     };  
  25.     xmlHttp.open("POST", "/ajaxdemo1/BServlet", true);  
  26.     xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
  27.     var username = document.getElementById("username").value;  
  28.     xmlHttp.send("username=" + username);  
  29. }  
  30. </script>  
  31. <h1>注册</h1>  
  32. <form action="" method="post">  
  33. 用户名:<input id="username" type="text" name="username" onblur="send()"/><span id="error"></span><br/>  
  34. 密 码:<input type="text" name="password"/><br/>  
  35. <input type="submit" value="注册"/>  
  36. </form>  

 

RegistServlet.java

[java] view plain copy
 
  1. public void doPost(HttpServletRequest request, HttpServletResponse response)  
  2.             throws ServletException, IOException {  
  3.         request.setCharacterEncoding("utf-8");  
  4.         response.setContentType("text/html;charset=utf-8");  
  5.           
  6.         String username = request.getParameter("username");  
  7.   
  8.         if("test".equals(username)) {  
  9.             response.getWriter().print(true);  
  10.         } else {  
  11.             response.getWriter().print(false);  
  12.         }  
  13.     }  

 

posted @ 2018-01-31 09:41  sky20080101  阅读(130)  评论(0)    收藏  举报