1. 程式人生 > >Web - ajax(非同步重新整理) & json(資料交換格式)

Web - ajax(非同步重新整理) & json(資料交換格式)

一、AJAX

1.ajax是什麼?

AJAX: “Asynchronous JavaScript And XML”(非同步JavaScript和XML)
非同步重新整理: 不重新整理頁面的情況下 , 向伺服器傳送請求.

2.ajax原理:

1.1  使用JavaScript獲得瀏覽器內建的AJAX引擎(XMLHttpRequest)物件.
1.2  通過AJAX引擎確定請求路徑和請求引數.
1.3  通知AJAX引擎傳送請求(在不重新整理瀏覽器位址列的情況下)
 
2.1  伺服器獲得請求引數後,進行處理請求引數.
2.2  伺服器響應資料給瀏覽器.
2.3  AJAX引擎獲得伺服器響應的資料 , 通過執行js的回撥函式將資料傳遞給瀏覽器頁面.

3.jquery封裝好的ajax方法.

$.get(url , param , function(){ } , type);
$.post(url , param , function(data ,statusText , xhr ){
           url: 請求的地址.
           param: 請求的引數.
           function:回撥函式 .
                    data: 伺服器返回的資料

.
                    statusText: 對於狀態碼的一個文字解析.
                    xhr:ajax物件.
          type: 是否要求jquery對返回的資料進行格式處理.
} , type);

低階封裝方法(但更全面):
$.ajax({
          url:地址,
          data:引數
          type:“請求方式”,
          dataType:“jquery對於資料進行格式處理”,
          success:function(data,statusText,xhr){
                    //成功的回撥函式
          },
          error:function(data,statusText,xhr){
                    //處理錯誤函式
          }
});

二、JSON

1.json:資料交換格式 -> 其實就是一個字串.

json的物件格式:
    var json1 = {
          “屬性名”:屬性值 ,
          …
    }
    標準規範: key必須使用雙引號 ,
 
json的陣列格式:
    var json = [ele1 , ele2 , …]         / / 多個之間用 , 隔開.

2.json-lib工具: 將java資料與json資料相互轉換的工具.

使用前提:
     1.匯入jar包.
                連結:https://pan.baidu.com/s/1Bx1uPIhm4IT60gDVbnNVZA 密碼:87km
 
常用物件:

  • JSONObject : java物件(JavaBean , Map ) 與json資料轉換
  • JSONArray: java集合(List , Array ) 與json資料轉換
     

常用方法:

  • static fromObject (…): 靜態 , java物件/集合 -> jsonlib物件
  • toString (): 將jsonlib物件轉換為json字串.

     例:
          JSONObject.fromObject(map).toString();
          JSONArray.fromObject(list).toString();

01_ajax案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>post方法的使用</title>
    <!-- 匯入js類庫  -->
    <script src="../js/jquery.js"></script>
    <script>
        // 點選事件.
        function req() {
            $.post("/test","username=juan",function (data) {
                $("#msg").html(data)
            })
        }
    </script>
</head>
<body>
    <input type="button" value="點我傳送請求" onclick="req()">
    <div id="msg"></div>
</body>
</html>

02_json案例:

public class Test02 {
    @Test
    public void test01(){
        // java陣列  --->  json格式.
        String[] str ={"你好","小明","小李"};
        String s = JSONArray.fromObject(str).toString();
        System.out.println(s);
    }

    @Test
    public void test02(){
        // List集合  --->  json格式.
        List<Object> list = new ArrayList<>();
        list.add("aaa");
        list.add("aaa");
        list.add("aaa");
        String s = JSONArray.fromObject(list).toString();
        System.out.println(s);
    }

    @Test
    public void test04(){
        // map集合  --->  json格式.
        Map<String , Object> map = new HashMap<>();
        map.put("aaa","老虎");
        map.put("bbb","老虎");
        map.put("ccc","老虎");
        String s = JSONObject.fromObject(map).toString();
        System.out.println(s);
    }

    @Test
    public void test06(){
        // List<JavaBean>   --->  json格式.
        List<User> list = new ArrayList<>();
        String s = JSONArray.fromObject(list).toString();
        System.out.println(s);
    }
}