AJAX

1.概念
ASynchronous JavaScript And XML 异步的JavaScript 和 XML

  1. 异步和同步:客户端和服务器端相互通信的基础上
    * 客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。
    * 客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作。

    Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 [1]
    通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
    传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。
    提升用户的体验

2.实现方式

   1. 原生的JS实现方式(了解)
        2. JQeury实现方式
            1. $.ajax()
                * 语法:$.ajax({键值对});
                 //使用$.ajax()发送异步请求
                    $.ajax({
                        url:"ajaxServlet1111" , // 请求路径
                        type:"POST" , //请求方式
                        //data: "username=jack&age=23",//请求参数
                        data:{"username":"jack","age":23},
                        success:function (data) {
                            alert(data);
                        },//响应成功后的回调函数
                        error:function () {
                            alert("出错啦...")
                        },//表示如果请求响应出现错误,会执行的回调函数
        
                        dataType:"text"//设置接受到的响应数据的格式
                    });
            2. $.get():发送get请求
                * 语法:$.get(url, [data], [callback])
                    * 参数:
                        * url:请求路径
                        * data:请求参数
                        * callback:回调函数

            3. $.post():发送post请求
                * 语法:$.post(url, [data], [callback])
                    * 参数:
                        * url:请求路径
                        * data:请求参数
                        * callback:回调函数

3.案例

package com.zhongruan.web;

import com.fasterxml.jackson.databind.ObjectMapper;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

@WebServlet("/findUserNameSerlvet")
public class FindUserNameServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name = request.getParameter("username");
        System.out.println(name);
        //相应格式为Json
        response.setContentType("application/json;charset=utf-8");
        Map<String, Object> map = new HashMap<>();

        if ("tom".equals(name)) {
//            response.getWriter().print("1");
            System.out.println("1111");
            map.put("userExsit", true);
            map.put("msg", "存在");
        } else{
            System.out.println("2222");
            map.put("userExsit", false);
            map.put("msg", "可用");
//            response.getWriter().print("2");
        }
        //定义json对象
        ObjectMapper mapper = new ObjectMapper();
        //把map集合转化为json字符串
        mapper.writeValue(response.getWriter(), map);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
   <script src="js/jquery-3.3.1.min.js"></script>
    <script type="text/javascript">
/*        window.onload = function () {

        };*/
        $(function () {
            $("#username").blur(function () {
                var username = $(this).val();
                $.get("findUserNameSerlvet", {username: username}, function (data) {
                    alert(data);
                    var span = $("#user_msg");
                    if (data.userExsit) {
                        span.css("color", "red");
                        span.html(data.msg);
                    } else {
                        span.css("color", "green");
                        span.html(data.msg);

                    }
                })
            })
        })
    </script>
</head>

<body>
    <table align="center">
        <tr>
            <td>用户名1111</td>
            <td><input type="text" name="username" align="center" id="username">
                <span id="user_msg"></span>
            </td>
        </tr>
        <tr>
            <td>密码 </td>
            <td><input type="password" name="password"></td>
        </tr>
    </table>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值