AJAX

概念:

1. ASynchronous JavaScript And XML 异步的JavaScript和XML.
2. AJAX不是新的编程语言,而是一种使用现有标准的新方法.
3. AJAX是与服务器交换数据并更新部分网页的技术,在不重新加载整个页面的情况下. 
4. 异步和同步(客户端和服务器端相互通信的基础上):
      客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。
      客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作。

实现方式:

1.原生实现方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>原生的JS实现方式</title>
    <script>
        function fun(){
            //创建核心对象
            var xmlhttp;
            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp=new XMLHttpRequest();
            }
            else
            {// code for IE6, IE5
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            //建立连接
            /**
                参数:
                    1.请求方式:GET、POST
                            GET:请求参数在URL后拼接,send方法为空。
                            POST:请求参数在send方法中定义。
                    2.请求的URL;
                    3.同步或者异步请求:false(同步)、true(异步)。
             */
            xmlhttp.open("GET","ajaxServlet?username=hzc",true);
            //发送请求
            xmlhttp.send();
            //接收并处理来自服务器的响应结果
            xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    let responseText = xmlhttp.responseText;
                    alert(responseText);
                }
            }
        }
    </script>
</head>
<body>
    <button onclick="fun()">发送异步请求</button>
</body>
</html>

2.JQuery实现方式

1.$.ajax()
    语法:$.ajax({键值对});
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JQ $.ajax()实现方式</title>
    <script src="js/jquery-3.3.1.min.js"></script>
    <script>
        function fun() {
            $.ajax({
                url:"ajaxServlet",//请求路径
                type:"POST",//请求方式
                data:{"username":"hzc"},//请求参数
                success:function (data) {
                    alert(data);
                },//响应成功后的回调函数
                error:function () {
                    alert("error!");
                },//响应失败后的回调函数
                dataType:"text"//设置接收到的响应数据的格式
            });

        }
    </script>
</head>
<body>
    <button onclick="fun()">发送异步请求</button>
</body>
</html>
2.$.get()和$.post()
    语法:
        $.get(url.[data],[callback],[type]);
          url:请求路径
          data:请求参数
          callback:回调函数
          type:响应结果类型
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script src="js/jquery-3.3.1.min.js"></script>
  <script>
    function fun() {
      $.get("ajaxServlet",{username:"hzc"},function (data) {
        alert(data);
      },"text");
    }
  </script>
</head>
<body>
  <button onclick="fun()">发送异步请求</button>
</body>
</html>

服务器端Servlet

package com.servlet;

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;
@WebServlet("/ajaxServlet")
public class AjaxServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        System.out.println(username);
        resp.getWriter().write(username);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }
}

AJAX

上一篇:netty 学习 Handler的执行顺序


下一篇:Typora配置本地图片自动上传阿里云OSS