AJAX


01. 概念

  Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)

  使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。

02. XMLHttpRequest 

  Ajax 的核心是 XMLHttpRequest 对象。

  a. 创建 xmlhttpRequest

    所有现代浏览器(Chrome、IE7+、Firefox、Safari 以及 Opera)都有内建的 XMLHttpRequest 对象。

    老版本的 Internet Explorer(IE5 和 IE6)使用 ActiveX 对象:

   b. xmlhttpRequest 对象方法

    如果需要像表单一样post数据,则需要配置 Header 

    xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

   c. xmlhttpRequest 对象属性

  d.  异步模式时,结果的接收

    readyState 属性存留 XMLHttpRequest 的状态。

    onreadystatechange 属性定义当 readyState 发生变化时执行的函数。

    每当 readyState 发生变化时就会调用 onreadystatechange 函数。

    当 readyState 为 4,status 为 200 时,响应就绪:

03. JS原生的Ajax请求

    

     post请求带参数时,

 04. JQuery的Ajax请求

  a. ajax调用;

  b. $.get()调用

    语法:  $.get(url, [data], [callback], [type]);

  c. $.post()调用

    语法:  $.post(url, [data], [callback], [type]);

    -----------------------------------------------------------------

    参数:  url: 请求地址;

        data: 请求参数;   username="张三", age=23,....

        callback: 回调函数;

        type : 响应结果的类型;

 ## JSON

01. 概念

  JSON: JavaScript Object Notation(JavaScript 对象标记法)。

  JSON 是一种存储和交换数据的语法。

  JSON 是通过 JavaScript 对象标记法书写的文本。

02. JSON基本规则

 03. 获取数据

  a. json对象.键名;

  b. json对象["键名"];

  c. 数组对象[索引]; 

  d.  循环处理: for in 循环

       

 04. JSON与Java对象的相互转换

  a.JSON解析器:

    * 常见的JSON解析器:  JsonLib, Gson, fastJson, jackson;

      >> jackson: Spring全家桶内置的解析器;

  b. Java对象转Json

    1. 使用步骤:

      * 导入jackson相关jar包: 

      * 创建 Jackson核心对象 objectMapper;

      * 调用 objectMapper 的相关方法进行转换;

    2. objectMapper转换方法

      * wirteValue(参数, obj);

        > 参数为 File:  将obj对象转换为JSON字符串并保存到指定的文件中;

        > 参数为 Writer: 将obj对象转换为JSON字符串并将JSON数据填充到字符输出流中;

        > 参数为 OutputStream: 将obj对象转换为JSON对象并将json数据填充到字节输出流中;

      * writeValueAsString(obj);  

        > 将对象转换为字符串;

    3. Json对象上的注解

      * @JsonIgnore: 排除属性;即在将对象转JSON时,不处理这个属性;

      * @JsonFormat: 格式化属性值;

        比如:日期格式的性性,默认返回的是时间戳;为便于理解,需要转成 yyyy-MM-dd 格式

        @JsonFormat( pattern = "yyyy-MM-dd")

  c. JSON转为Java对象

    1. 导入jackson的相关jar包;

    2.创建jackson核心对象 objectMapper;

    3.调用ObjectMapper的相关方法进行转换;   readValue("Json字符串数据", class);