AJAX異步校驗


JQeury實現方式
  1. $.ajax()
    * 語法:$.ajax({鍵值對});
      //使用$.ajax()發送異步請求
      $.ajax({
      url:"ajaxServlet1111" , // 請求路徑
      type:"POST" , //請求方式
      //data: "username=jack&age=23",//請求參數
      data:{"username":"jack","age":23},  //j建議這種
      success:function (data) {
      alert(JSON.stringify( data ));

      },//響應成功后的回調函數
      error:function () {
      alert("出錯啦...")
      },//表示如果請求響應出現錯誤,會執行的回調函數
      dataType:"text"//設置接受到的響應數據的格式
      });
  2. $.get():發送get請求
    * 語法:$.get(url, [data], [callback], [type])
    * 參數:
      * url:請求路徑
      * data:請求參數
      * callback:回調函數
      * type:響應結果的類型

  3. $.post():發送post請求
    * 語法:$.post(url, [data], [callback], [type])
    * 參數:
      * url:請求路徑
      * data:請求參數
      * callback:回調函數
      * type:響應結果的類型

jsp;

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注冊頁面</title>
    <script src="js/jquery-3.3.1.min.js"></script>
    <script>

        //在頁面加載完成后
        $(function () {
            //給username綁定blur事件
            $("#username").blur(function () {
                //獲取username文本輸入框的值
                var username = $(this).val();
                //發送ajax請求
                //期望服務器響應回的數據格式:{"userExsit":true,"msg":"此用戶名太受歡迎,請更換一個"}
                //                         {"userExsit":false,"msg":"用戶名可用"}
                $.post("findUserServlet",{username:username},function (data) {
                    //判斷userExsit鍵的值是否是true

                    alert(JSON.stringify( data ));

                    var span = $("#s_username");
                    if(data.userExsit){
                        //用戶名存在
                        span.css("color","red");
                        span.html("asd");
                    }else{
                        //用戶名不存在
                        span.css("color","green");
                        span.html(data.msg);
                    }
                },"json");

            });
        });
    </script>
</head>
<body>
    <form>
        <input type="text" id="username" name="username" placeholder="請輸入用戶名">
        <span id="s_username"></span>
        <br>
        <input type="password" name="password" placeholder="請輸入密碼"><br>
        <input type="submit" value="注冊"><br>
    </form>
</body>
</html>

servlet;

@WebServlet("/findUserServlet")
public class FindUserServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        //1.獲取用戶名
        String username = request.getParameter("username");

        System.out.println(username);

        response.setContentType("application/json;charset=utf-8");
        HashMap<String, Object> map = new HashMap<>();
        //調用service層判斷用戶名是否存在
        if ("tom".equals(username)){
            //存在
            map.put("userExist",true);
            map.put("msg","名字已存在");
        }else{
            //不存在
            map.put("userExist",false);
            map.put("msg","用戶名可以用");
        }
        //將map轉換成json,並且傳遞給客戶端
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(map));
        mapper.writeValue(response.getWriter(),map);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

 


免責聲明!

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



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