SpringMVC --- 使用AJAX完成用戶信息校驗

前言

我們日常開發中,異步刷新技術使用十分廣泛,今天以用戶信息校驗爲例子進行相關講解。

1. AJAX實現異步刷新

簡介:
[1] AJAX = Asynchrous JavaScript and XML (異步的JavaScript 和XML)
[2] AJAX 是一個唔需要重新加載整個網頁的情況下,能夠更新部分網頁的技術
[3] AJAX 不是一種新的編程語言,而是一種用於創建更好更快以及交互性更強的Web 應用程序技術
[4] AJAX 在我們生活中應用十分廣泛,如我們在百度上輸入某個關鍵字,下拉框就會彈出熱搜信息。
在這裏插入圖片描述
**實現簡單的登錄驗證 **
前序:該項目是在SpringMVC的框架上運行的,其餘相關的web,boot項目都可以使用;

[1] 編寫login.jsp頁面

<p>
    用戶名: <input type="text" id="name" οnblur="a1()">
    <span id="userInfo"></span>
</p>
<p>
    密碼: <input type="text" id="pwd" οnblur="a2()">
    <span id="pwdInfo"></span>
</p>

上面的輸入框中,當我們鼠標失去焦點後,就會調用js的代碼,其中js 代碼就是相關的ajax操作;這裏我們先編寫後臺的邏輯層代碼

[2] AjaxController.class
這裏主要是校驗前臺用戶名和密碼的合法性

@RestController
public class AjaxController {
    @RequestMapping("/a3")
    public String a3(String name, String pwd){
        String msg = "";
        if (name != null){
            if ("admin".equals(name)){
                msg = "ok";
            }else{
                msg = "用戶名有誤";
            }
        }
        if (pwd != null){
            if ("123456".equals(pwd)){
                msg = "ok";
            }else{
                msg = "密碼有誤";
            }
        }

        return msg;
    }
}

編寫完後臺邏輯代碼後,我們可以繼續編寫jsp頁面中關於ajax 異步刷新的步驟 (即訪問我們controller層的邏輯實現)

[3] 編寫 login.jsp中的ajax代碼
步驟:
1.導入jquery的包
2.使用$.post 遞交前臺的數據(name,pwd)到 controller 層後,返回controlle層中的msg(即前臺接收的data)
3.把data信息添加到輸入框後面

 <script src="${pageContext.request.contextPath}/statics/js/jquery-3.5.1.js"></script>

    <script>
        function a1() {
            $.post({
                url: "${pageContext.request.contextPath}/a3",
                data: {"name": $("#name").val()},
                success:function (data) {
                   if(data.toString() === 'ok'){
                       $("#userInfo").css("color","green");
                   }else{
                       $("#userInfo").css("color","red");
                   }
                   $("#userInfo").html(data);
                }
            })
        }
        function a2() {
            $.post({
                url: "${pageContext.request.contextPath}/a3",
                data: {"pwd": $("#pwd").val()},
                success:function (data) {
                    if(data.toString() === 'ok'){
                        $("#pwdInfo").css("color","green");
                    }else {
                        $("#pwdInfo").css("color","red");
                    }
                    $("#pwdInfo").html(data);
                }
            })
        }
    </script>

完整的login.jsp代碼

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>

       <script src="${pageContext.request.contextPath}/statics/js/jquery-3.5.1.js"></script>

    <script>
        function a1() {
            $.post({
                url: "${pageContext.request.contextPath}/a3",
                data: {"name": $("#name").val()},
                success:function (data) {
                    if(data.toString() === 'ok'){
                        $("#userInfo").css("color","green");
                    }else{
                        $("#userInfo").css("color","red");
                    }
                    $("#userInfo").html(data);
                }
            })
        }
        function a2() {
            $.post({
                url: "${pageContext.request.contextPath}/a3",
                data: {"pwd": $("#pwd").val()},
                success:function (data) {
                    if(data.toString() === 'ok'){
                        $("#pwdInfo").css("color","green");
                    }else {
                        $("#pwdInfo").css("color","red");
                    }
                    $("#pwdInfo").html(data);
                }
            })
        }
    </script>

</head>
<body>
<p>
    用戶名: <input type="text" id="name" onblur="a1()">
    <span id="userInfo"></span>
</p>
<p>
    密碼: <input type="text" id="pwd" onblur="a2()">
    <span id="pwdInfo"></span>
</p>

</body>
</html>

[4] 運行項目
http://localhost:8080/login.jsp
在這裏插入圖片描述
輸入錯誤信息時
在這裏插入圖片描述
輸入正確信息時
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章