第十九章 Ajax

1. Ajax简介

        Ajax是进行网站请求的一种技术,属于js的内容,被jQuery发展;Ajax:异步JavaScript 和XML,可以在不重载整个网页的情况下,Ajax通过后台加载数据,并在网页上进行显示。

普通的请求方式:

        浏览器发出请求,经过servlet处理后再通过转发或者重定向的方式返回个客户端,客户端需要重新加载/重新渲染页面;

Ajax的方式:

        浏览器通过XmlHttpRequest对象发起请求,servlet只需要返回数据内容,不需要返回html页面,客户端通过Ajax对象接收返回的数据,通过js将数据显示到页面上,整个网页不需要重新加载。

异步:

        客户端发出请求之后可以继续其他的操作,不需要等待服务器响应;

同步:

        客户端发出请求之后必须等服务器响应之后才能继续操作。 

2. Ajax和普通请求的区别

普通请求:

      ①地址栏通过url发送普通请求;

      ②通过超链接发送普通请求;

      ③通过表单提交普通请求;

普通请求的响应内容:

        服务器返回的是完整的html页面,所以浏览器需要重新加载整个页面,页面会刷新;

普通请求是同步处理方式,一个时间点,只能做一个处理。

Ajax请求(异步请求):

        发送方式:

                通过js对象XmlHttpRequest对象发起Ajax异步请求,可以发送post/get请求;

        请求的响应内容:

                浏览器对Ajax请求只需要返回数据内容,不需要返回html页面,客户端通过Ajax对象接收服务器返回的数据,用js的方式,将数据呈现到页面上;

        Ajax请求是异步处理方式,同一时间段内,可以作多个处理;

        Ajax请求是页面局部刷新。

    var xhr;
    function getTime(){
      //创建Ajax对象
      xhr = new XMLHttpRequest();
      //设置状态变化的回调函数
      xhr.onreadystatechange = function (){
        if(xhr.readyState==4&&xhr.status == 200){
          var myDiv = document.getElementById("mydiv")
          myDiv.innerHTML = xhr.responseText;
        }
      }
      //设置发送方式和请求地址 URL
      xhr.open("GET","${pageContext.request.contextPath}/AjaxServlet");
      //发送请求
      xhr.send();
    }
readyState的取值
取值说明
0未初始化状态,此时创建了XMLHttpRequest对象但没有初始化
1准备发送状态,此时已经调用了XmlHttpRequest对象的open()方法,已经准备好将Http请求发送到服务器端
2已经发送状态,已经通过XmlHttpRequest对象的send()方法将请求发送到服务器端,但是没有收到响应
3正在接收状态,此时已经接收到Http响应的头部信息,但是消息体部分还没有完全接收到
4完全响应状态,此时已经完成了HttpResponse响应的接收

 3. JSON

3.1 JSON学习回顾

         json是一种数据交换格式,采用  键值对  的文本格式来存储和表示数据,在系统交换数据的过程中常常被使用,是一种理想的数据交换语言。

//js对象:
    var stu = {
            name : "张三",
            sex  : "男",
            id   : 1001     
        }
//json对象
    var stu = {
            "name" : "张三",
            "sex"  : "男",
            "id"   : 1001     
        }
//Json对象的字符串
var stu2 = '{"name":"张三","sex":"男"}';
//json字符串转为json对象
var stu3 = JSON.parse(stu2);
//json对象转json字符串
var str = JSON.stringify(stu3)

3.2 Java中JSON转换工具

        fastjson,GSON,jackson,导入相应的jar包。

        Map map = new HashMap();
        map.put("id",1000);
        map.put("name","张三");
        map.put("sex","男");

        System.out.println(map);
        //Json字符串
        System.out.println(JSONObject.toJSONString(map));
        //json对象
        JSONObject jsonArray = new JSONObject(map);
        System.out.println(jsonArray.get("id"));

4. JQuery中Ajax的使用

4.1 $.get()

      $("#btn1").click(function (){
        $.get(
          "${pageContext.request.contextPath}/AjaxServlet",
                {name:"张三",sex:"男"},
                function (res) {
                  console.log(res);
                  var str = "姓名:"+res.name+" 性别:"+res.sex+" 学号:"+res.id;
                  $("#mydiv").append("<p>"+str+"</p>");
                },
                "json"
        );
      })

 4.2 $.post()

$("#btn2").click(function (){
        $.post(
                "${pageContext.request.contextPath}/AjaxServlet",
                {name:"张三",sex:"男"},
                function (res) {
                  console.log(res);
                  var str = "姓名:"+res.name+" 性别:"+res.sex+" 学号:"+res.id;
                  $("#mydiv").append("<p>"+str+"</p>");
                },
                "json"
        );
      })

4.3 $.ajax()

$("#btn3").click(function (){
        $.ajax({
          url:"${pageContext.request.contextPath}/AjaxServlet",
          data:{},
          type:"post",
          dataType:"json",
          success:function (res){
            var str = "姓名:"+res.name+" 性别:"+res.sex+" 学号:"+res.id;
            $("#mydiv").append("<p>1"+str+"</p>")
          },
          error:function (xhr,msg) {
            alert(msg);
            console.log(xhr)
          }
        })
      })

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/70761177 【完整课程列表】 完整版Java web开发教程PPT课件 Java开发进阶教程 第01章 JavaScript简介以及基本语法(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第02章 Dom模型,控制客户端元素(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第03章 表单验证,常用函数(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第04章 自定义web服务器(共14页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第06章 SERVLET(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第07章 JSP语法及运行过程(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第08章 JSP内置对象(共22页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第09章 jstl、el、java bean(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第12章 自定义mvc框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第13章 spring ioc aop(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第14章 spring mvc介绍,原理以及搭建(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第15章 spring mvc核心对象拦截器(共26页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第17章 自定义orm框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第18章 mybatis框架的搭建以及应用(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第19章 mybatis高级应用(共21页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 数据库连接池,缓存(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第22章 常用框架的介绍以及环境搭建(共16页).pptx JS课程案例ebookHTML\网上书店需求文档.doc

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值