json 是一種與語言無關的數據交換的模式。只是一種數據格式:
ajax :
是么是同步 什么事異步
同步現象:客戶端發送請求到服務端,當服務端返回響應之前,客戶端都處於等待卡死狀態。
異步現象:客戶端發送請求到服務器端,無論服務器是否返回,客戶端都可以隨意做其他的時候,不會卡死。
二原聲js的 ajax 技術這只是作為了解。
(感覺,我要是會了很多技術,或者說技術練熟練了,我感覺寫着還是 很帶勁的,可以寫的很開心,很嗨的,特別是做項目的時候,就是因為自己現在很多知識不熟練,不清楚。很多的代碼要敲是十遍,在腦海中有印象,當然就可以寫的很好了)
function fn1() {
alert(11);
//1創建 ajax q引擎對象 ----所有的操作 都是通過引擎對象
var xmlHttp = new XMLHttpRequest();
//2 ,綁定監聽---監聽服務器是否已經返回相應的數據
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
//5 接受相應的數據
var res = xmlHttp.responseText;
alert(res);
}
}
//3、綁定地址
xmlHttp.open("get", "/ajax/AjaxServlet", true);
//4發送請求
//if是post請求的話:要在send 發送之前寫
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlHttp.send();
}
按
照
步驟來:1/第一步創建引擎 2/第二步綁定監聽 3/第三步綁定地址 4 /發送請求 ,5 /接受相應的數據,這一步放在第2步的里面。
三 很重要的JSON的數據格式:
1/對象格式:
{"key1":obj,"key2":obj,"key":obj}
//這個里面的obj如果是字符串,那么就要加引號,如果不是就直接寫
2/數組:集合格式:
var json = {
"key1":"value1",
"key2":{"firstname":"張","lastname":"三豐","age":100},
"key3":[
{"name":"小雙","age":28,"addr":"揚州"},
{"name":"建寧","age":18,"addr":"紫禁城"},
{"name":"阿珂","age":10,"addr":"山西"},
]
};
alert(json.key2.lastname);
alert(json.key3[2].name);
其實每一步只需要一步步點出來就可以了。
//java代碼只能返回一個json格式的字符串
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write("{\"name\":\"湯姆\",\"age\":21}");
當是post請求的時候,是不需要去管字符集的,因為這里ajax a已經幫你調用過。parseJSONY已經處理過字符集了。其他的就跟平時一樣處理字符集就可以了。
jQuery的ajax技術:重點:
記住要使用:jquery 最重要的前提就是要導包 jquery的包
get 方法 和post 方法
但是最重要的還是ajax最原始的方法
function fn1(){
//get異步訪問
$.get(
"/WEB22/ajaxServlet2", //url地址
{"name":"張三","age":25}, //請求參數
function(data){ //執行成功后的回調函數
//{\"name\":\"tom\",\"age\":21}
alert(data.name);
},
"json"
);
}
function fn2(){
//post異步訪問
$.post(
"/WEB22/ajaxServlet2", //url地址
{"name":"李四","age":25}, //請求參數
function(data){ //執行成功后的回調函數
alert(data.name);
},
"json"
);
}
function fn3(){
$.ajax({
url:"/WEB22/ajaxServlet2",
async:true,
type:"POST",
data:{"name":"lucy","age":18},
success:function(data){
alert(data.name);
},
error:function(){
alert("請求失敗");
},
dataType:"json"
});
async :是否異步,默認是TRUE代表異步。
data :發送到服務器的參數,建議使用json的格式
dateType :服務器端返回的數據類型,常用的text和json 一般都是json
success :成功響應執行的函數,對應的類型是function類型
type:請求方式 ,post /get
url :請求的服務器端地址
今天算是復習了,不得不說效率還是 太慢了一點。這個 不能這個樣子了。
貼吧的代碼,支付寶的代碼, struts2 的 filter 明天面試,改背的一定要好好去背