Welcome to Yumao′s Blog.
Hello Ajax Day02
, 2012年05月09日 , Java Language , 评论 在〈Hello Ajax Day02〉中留言功能已關閉 ,

1、緩存問題:
當採用get方式向服務器請求時,ie瀏覽器會先嘗試
從緩存當中查找數據,如果找到,不再向服務器發請求。
解決方式:
在請求地址後面添加一個隨機數。
採用post方式向服務器發請求,也可以解決
這個問題。
2、採用post方式發請求
step1 獲得XMLHttpRequest對象
var xhr = getXhr();
step2 發送請求
xhr.open(‘post’,’check_username.do’,true);
//在默認情況下,xhr對象生成的http請求數據
//包不會包含content-type消息頭。
//setRequestHeader的作用是,在生成的
//http請求數據包當中,添加content-type消息頭。
xhr.setRequestHeader(‘content-type’,
‘application/x-www-form-urlencoded’);
xhr.send(‘username=zs’);
step3 服務器處理請求
step4 在監聽器裡面處理服務器返回的數據
3、編碼問題
1)如果鏈接地址包含了中文,如何處理?
瀏覽器都會對鏈接地址中的中文進行
編碼(一定會採用utf-8進行編碼)
解決方式:
可以通過修改tomcat_home/conf/
server.xml文件,添加”URIEncoding=”utf-8″
2)如果鏈接地址包含了中文參數,如何處理?
瀏覽器會對中文參數進行編碼,具體採用
何種編碼,要看打開這個頁面的編碼是什麼。
解決方式:
step1:
修改tomcat_home/conf/
server.xml文件,添加”URIEncoding=”utf-8″
step2:
在jsp文件當中,添加
<%@page pageEncoding="utf-8" contentType="text/html;charset=utf-8"%>
3)在ajax應用當中,當使用get方式向服務器
發送請求時,ie使用gbk編碼對請求數據進行編碼,
firefox,chrome使用utf-8進行編碼。
解決方式:
step1
修改tomcat_home/conf/
server.xml文件,添加”URIEncoding=”utf-8″
step2
對請求地址使用encodeURI函數進行處理,
該函數會對地址中的中文進行編碼(採用utf-8)。
如果使用post方式向服務器發請求,瀏覽器都會採用
utf-8編碼。
解決方式:
step1 setCharacterEncoding(“utf-8″);

4、json
1)json是什麼?
javascript object notation。
一個輕量級(相對於xml,
性能和使用的方便性要更好)的數據交換標準。
2)json的基本語法?
a, 定義一個對象
{屬性名:屬性值,屬性名2:屬性值2…}
注意:
屬性名要用”引起來。
屬性值如果是字符串,要用”引起來。
屬性值可以是
string,number,boolean,null,Object,Array
比如:
{‘name’:’zs’,’age’,22}
{‘name’:’ww’,’address’:
{
‘city’:’bj’,
‘street’:’ca’
}
}
b,定義一個數組
[{},{},{}]
3)使用json交換數據
a, java對象轉換成json字符串
//obj要轉換的java對象
JSONObject jsonObj = JSONObject.fromObject(obj);
jsonObj.toString();
如果要轉換是java對象組成的數組或者是集合,
使用:
JSONArray jsonObj =
JSONArray.fromObject(stocks);
jsonObj.toString();
b, 將json字符串轉換成js對象
prototype: 是一個javascript文件,裡面提供了
大量的實用的函數。
$(id): 相當於document.getElementById(id);
$F(id):相當於document.getElementById(id).value;
$(id1,id2…):返回一個數組,每一個元素使用
document.getElementById進行查找。
strip():除掉字符串兩端的空格。
evalJSON(): 將json字符串轉換成一個javascript
對象。
在頁面的某個區域,每隔5秒鐘,
顯示推薦的一支股票的信息。
練習: 改為每次推薦三支股票。
4) 如何處理日期
step1 先寫一個日期轉換器類,必須實現
JsonValueProcessor接口。
step2 註冊這個轉換器類

練習:
“熱買商品”:
每隔30秒顯示當前銷量前三的商品信息:
商品名稱 銷量。

step1 建一張表
create table t_sale(
id int primary key auto_increment,
name varchar(20),
qty int
);
insert into t_sale(name,qty) values(‘s1′,22);
insert into t_sale(name,qty) values(‘s2′,122);
insert into t_sale(name,qty) values(‘s3′,242);
insert into t_sale(name,qty) values(‘s4′,24);
insert into t_sale(name,qty) values(‘s5′,12);

註:查詢銷量前三的產品
select * from t_sale order by qty desc limit 3;
step2 服務器端程序:
寫一個Servlet,通過dao查詢t_sale表,
將查詢得到的數據轉換成json字符串,然後
發送給客戶端
step3 測試服務器程序
step4 客戶端的程序

ajax02.tar.gz
课堂内容

关键字:, ,

评论已关闭