AJAX--這東東就是好
最近有一個(gè)功能就是在客戶添加或者修改的時(shí)候能夠動(dòng)態(tài)的根據(jù)所填寫的內(nèi)容與數(shù)據(jù)中的數(shù)據(jù)進(jìn)行比較提供預(yù)警信息,但是不影響客戶的增加和修改,只是簡(jiǎn)單的提示一下.
因?yàn)闃I(yè)務(wù)數(shù)據(jù)涉及的對(duì)象比較的多.等客戶提交后再來比較的話,很難達(dá)到這樣的目的,所以我就選擇了AJAX這個(gè)東西,果然很不錯(cuò),處理起來一切都那么的美妙.
首先在要處理的地方第一兩個(gè)javascript函數(shù):
function getmount()//統(tǒng)計(jì)取值
{
var url = "servlet/SelectCountServlet?&A="+document.all("A").value+"&B="+document.all("B").value;
//A和B都是剛剛填入的值
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.onreadystatechange = processRequest;
req.open("GET", url, true);
req.send(null);
}
//將返回的XML格式的數(shù)據(jù)賦給頁面的隱藏變量.
function processRequest() {
if (req.readyState == 4) {
if (req.status == 200) {
var Head = req.responseXML.getElementsByTagName("Head");
document.all('HeadValue').value=Head[0].firstChild.data;
var Collect = req.responseXML.getElementsByTagName("Collect");
document.all('CollectValue').value=Collect[0].firstChild.data;
} else {
document.all('HeadValue').value=-1;
document.all('CollectValue').value=-1;
}
}
}
接著就可以定義一個(gè)servlet來處理上面的請(qǐng)求:
主要的方法是用xml格式返回?cái)?shù)據(jù)流
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
// String state = request.getParameter("state");
StringBuffer sb = new StringBuffer("<value>");
sb.append("<A>").append(A_value).append("</A>").append("<B>").append(B_value).append("</B>");
sb.append("</value>");
PrintWriter out = response.getWriter();
out.write(sb.toString());
out.close();
就這么簡(jiǎn)單.A_value,B_value可以利用javaBean去從數(shù)據(jù)庫中取值.接下來來的一些處理就不用過多介紹了,只是簡(jiǎn)單的在頁面提交的時(shí)候判斷一下,彈出一個(gè)警告對(duì)話框就ok了.
其實(shí)這樣做的好處多多
posted on 2005-12-19 13:48 流浪的風(fēng) 閱讀(222) 評(píng)論(0) 編輯 收藏