Java--- Ajax異步驗證用戶名是否存在


今天復習了一下  Ajax異步驗證用戶名是否存在,在下面我寫三種,一般開發時候都用第三種 jQuery和Ajax結合的形式,下面就介紹三種,具體說明代碼里就有啦,廢話不多說,直接上代碼:

 第一種方式:用基礎語法js實現 get請求:

 1 //封裝了獲取XMLHttpRequest對象的方法
 2 function getXMLHttpRequest() {
 3     var xmlhttp;
 4     if (window.XMLHttpRequest) {// code for all new browsers
 5         xmlhttp = new XMLHttpRequest();
 6     } else if (window.ActiveXObject) {// code for IE5 and IE6
 7         xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 8     }
 9 
10     return xmlhttp;
11 
12 }
13 
14 
15 
16 <script type="text/javascript" >
17       function ckName(){
18        //首先獲取用戶名對象
19        var username = document.getElementById("username");
20        //獲取XMLHttpRequest對象
21        var req = getXMLHttpRequest();
22        //創建連接
23      //  req.open("get","${pageContext.request.contextPath}/servlet/ckUsernameServlet?username="+username.value,true);
24        req.open("get","${pageContext.request.contextPath}/servlet/ckUsernameServlet?username="+username.value,true);
25        //4.發送請求
26        req.send(null);
27        //回調函數
28        req.onreadystatechange = function(){
29            if(req.readyState==4){
30              if(req.status==200){
31                 //獲取message
32                 var  messsage = document.getElementById("message");
33                 if(req.responseText=="true"){
34                     message.innerHTML ="用戶名已經存在";
35                 }else{
36                     message.innerHTML ="用戶名可以使用";
37                 }
38              }
39            
40            }
41        }
42        
43      }
44 </script>
45 
46 <body>
47   用戶名:  <input type="text"  name="username"  id="username" onblur="ckName()" />
48   <font id="message">請輸入有效的郵箱地址</font>
49 </body>

Servlet模擬數據庫中存在的名字,這里沒有連接數據庫,就直接模擬了,到實際操作中,直接從數據庫中查出名字看是否存在就Ok啦!

 

 

package adminServlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CkUsernameServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        
        String username = request.getParameter("username");
        System.out.println(username);
        if("admin".equals(username)){
            out.print(true);
        }else{
            out.print(false);
        }
        
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        doGet(request, response);
    }

}

第二種方式,就改下js代碼就好了  post 提交個參數:

function ckName(){
           var username = document.getElementById("username");
           var req = getXMLHttpRequest();
           //創建連接 用post提交方式
           req.open("POST","${pageContext.request.contextPath}/servlet/ckUsernameServlet",true);
           //向請求添加HTTP頭,這個必加,是提交到后台的方式
           req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
           //把請求發送到服務器
           req.send("username="+username.value);
           //回調函數
           req.onreadystatechange=function(){
                if(req.readyState==4 && req.status==200){
                     var  messsage = document.getElementById("message");
                     if(req.responseText=="true"){
                        message.innerHTML ="用戶名已經存在";
                     }else{
                         message.innerHTML ="用戶名可以使用";
                     }
               }    
           }
     }

 

*****第三種方式:最常用的  jQuery 和 Ajax  結合相互使用

   $(document).ready(function(){
           $("#username").blur(function(){
                   //   alert($(this).val());
             $.post("${pageContext.request.contextPath}/servlet/ckUsernameServlet",{username:$(this).val()},
             function(data){
               if(data=="true"){     //data 就是從servlet返回來的數據
                 $("#message").html("用戶名已存在");
               }else{
                  $("#message").html("用戶名可以注冊");
               }
             }
             ,"text");
               
           });
     });

 

就這樣啦,大家自己練習練習就好咯!

每天都要為自己加油,打氣,每天進步一點點,時間長了你就會進步一大截。共勉

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM