Ajax AJAX即“Asynchronous Javascript And XML”:是,不發生頁面跳轉、非同步請求載入內容並改寫局部頁面內容的技術。 也可以簡單的理解為通過JS向伺服器發送請求。 同步處理: 就是當我們通過一個頁面向伺服器發送一個請求時,在伺服器響應結束之前,我們的整個頁面是不能操 ...
Ajax
也可以簡單的理解為通過JS向伺服器發送請求。
同步處理:
就是當我們通過一個頁面向伺服器發送一個請求時,在伺服器響應結束之前,我們的整個頁面是不能操作的,並且即使整個頁面中只有一小部分內容發生改變我們也要刷新整個頁面。
非同步處理:
通過AJAX向伺服器發送請求,當伺服器正常響應請求後,響應信息會直接發送到AJAX中,AJAX可以根據伺服器響應的內容做一些操作。並可局部的修改頁面,而不需要整個頁面刷新。
- XMLHttpRequest對象用來封裝請求報文,我們向伺服器發送的請求信息全部都需要封裝到該對象中。
獲取XMLHttpRequest對象,不同瀏覽器之間有差異
//獲取XMLHttpRequest的通用方法 function getXMLHttpRequest(){ var xhr; try{ //大部分瀏覽器都支持 xhr = new XMLHttpRequest(); }catch(e){ try{ //如果不支持,在這裡捕獲異常並且採用IE6支持的方式 xhr = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ //如果還不支持,在這裡捕獲異常並採用IE5支持的方式 xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } return xhr; }
XMLHttpRequest對象的方法
-
-
參數一:method
接收一個字元串,表明請求的方法:get或post
-
參數二:url
請求的地址,接收一個字元串
-
參數三:Assync
發送的請求是否為非同步請求,接收一個布爾值。① true 是非同步請求 ② false 不是非同步請求(同步請求)
-
-
send(string):用於將請求發送給伺服器,可以接收一個參數
-
string參數
該參數只在發送post請求時需要。用於設置請求體
-
-
setRequestHeader(header,value):用於設置請求頭
-
參數一:header參數
字元串類型,要設置的請求頭的名字
-
參數二:value參數
-
XMLHttpRequest對象的屬性
-
-
描述XMLHttpRequest的狀態
-
一共有五種狀態分別對應了五個數字:
-
0 :請求尚未初始化,open()尚未被調用
-
1 :伺服器連接已建立,send()尚未被調用
-
2 :請求已接收,伺服器尚未響應
-
3 :請求已處理,正在接收伺服器發送的響應
-
4 :請求已處理完畢,且響應已就緒。
-
-
-
status
-
請求的響應碼
-
200 響應成功
-
404 頁面為找到
-
500 伺服器內部錯誤
......
-
-
-
onreadystatechange
-
該屬性需要指向一個函數
-
該函數會在readyState屬性發生改變時被調用
-
-
responseText
-
獲得字元串形式的響應數據。
-
-
responseXML(用的比較少)
-
-
$.ajax方法
-
$.get方法
-
$.post方法
-
$.ajax請求
- url
- type : 請求的方式 get或post
- data : 請求的參數 string或json
- success: 成功的回調函數
- dataType: 返回的數據類型 常用json或text
$.get和$.post請求
- url:請求的URL地址
- data
- callback:載入成功時回調函數。
- type:返回內容格式,xml, html, script, json, text。
$.getJSON請求
- url:待載入頁面的URL地址
- data:待發送 Key/value 參數。
- callback
$.ajax({ url : "ajaxServlet", // 請求地址 error:function(){ // 請求失敗回調 alert("請求失敗"); }, success:function(data){ // 請求成功回調 alert( data ); }, type:"POST", // 請求的方式 dataType:"json", // 返回的數據類型為json對象 data:{ // 請求的參數 action:"jqueryAjax", a:12, date: new Date() } });
JSON是JavaScript Object Notation 的縮寫,是JS提供的一種輕量級的數據交換格式, 易於人閱讀和編寫。同時也易於機器解析和生成。
JSON對象本質上就是一個JS對象,但是這個對象比較特殊,它可以直接轉換為字元串,在不同語言中進行傳遞,通過工具又可以轉換為其他語言中的對象。
在標準的json格式中,json對象由大括弧括起來,對象中的屬性也就是json的key是一個字元串,所以一定要使用雙引號引起來。每組key之間使用逗號進行分隔。
JSON 6種數據類型
-
-
數字
-
布爾值
-
null值
-
對象
-
例子:{“name”:”sunwukong”, ”age”:18}
-
-
數組
-
key就是對象的屬性。我們要訪問一個對象的屬性,只需要使用【對象名.屬性名】的方式訪問即可。
JSON對象和字元串對象的互轉
Gson 提供了用來在 Java 對象和 JSON 數據之間進行映射的 Java 類庫,可以將一個 JSON 字元串轉成一個 Java 對象,或者反過來。
-
-
java對象list集合和json的轉換
-
// json操作,一定要先new一個gson對象。 Gson gson = new Gson(); // 1、把對象轉成為json字元串 String personjson = gson.toJson(person); // 把json字元串轉換成為java對象 Person p = gson.fromJson(personjson, Person.class); //2、java對象list集合和json的轉換 String jsonListString = gson.toJson(list); // 把json數組轉換成為List對象 List<Person> ps = gson.fromJson(jsonListString, new PersonType().getType()); // 3、map對象和json的轉換 String jsonMapString = gson.toJson(mapPerson); // 通過使用匿名內部類的方式 Map<String, Person> map = gson.fromJson(jsonMapString,new TypeToken<HashMap<String, Person>>() {}.getType());