范 曦,張海越
(無錫科技職業(yè)學院,江蘇 無錫 214028)
Ajax作為一種基于JavaScript和XML的異步傳輸技術,在各類J2EE項目的開發(fā)過程中得到了廣泛的應用[1]。Ajax的使用可以讓開發(fā)者不需要重新加載整個頁面,而只需要通過與后臺數(shù)據(jù)庫的少量交互選擇更新部分頁面內容,從而節(jié)省時間和提高效率。由于它是一種異步傳輸?shù)姆绞剑旐撁嬲埱蟀l(fā)送給Web服務器后,客戶端無需再去等待返回結果,而可以繼續(xù)去觸發(fā)其它的請求。
在SQL Server數(shù)據(jù)庫中首先建立一張Student表,字段名分別為 id(學號)、name(姓名)和 age(年齡)。然后建立一個JSP頁面,該頁面有三個文本框分別用來顯示學號、姓名和年齡。最后要求一個文本框中輸入學生的學號,按回車鍵后,通過與后臺的交互在此頁面使用Ajax技術,可以在另外兩個文本框直接輸出根據(jù)學號查詢到相應學生的姓名和年齡。
建立一個XML文檔用于網(wǎng)頁與數(shù)據(jù)庫交互后保存查詢結果并返回給客戶端,該XML定義如下所示:
該文檔的id號為"idStudent"。vio_id、vio_name、vio_age三個子節(jié)點用于保存數(shù)據(jù)結果。
設交互的操作過程為:輸入學生學號并按回車鍵后,觸發(fā)一個JavaScript事件,該事件將只具有學生學號的XML文檔發(fā)送給服務器端,服務器端通過名為"getstudent"的Servlet接受學生學號并在數(shù)據(jù)庫中查詢,最后將查詢到的完整信息(學號、姓名、年齡)以XML文檔形式返回給客戶端。觸發(fā)事件中機制的主要代碼如下所示:
在這個步驟中JavaScript先把請求以XML文檔形式發(fā)送給服務器,服務器通過Servlet將XML傳送過來的數(shù)據(jù)接收后進行相應的查詢交互并形成新的XML文檔予以返回。
設交互的操作過程為:服務器端接收到客戶端傳來的XML文檔后進行解析,得到了學生的學號;隨后,在Servlet中與數(shù)據(jù)庫中的學生表進行交互,通過得到的學號查詢出該學號所對應的姓名和年齡,并重新形成完整信息的XML文檔以便予以返回給客戶端。主要機制的代碼如下所示:
服務器返回XML文檔后,客戶端通過JavaScript將XML文檔中子節(jié)點的具體內容逐一解析出來,并顯示在相應的文本框中即完成頁面內容的更新。主要機制的代碼如下所示:
這是該Ajax實例應用的最后一步,客戶端將從服務器端得到的返回內容顯示在頁面中,由于返回的內容存放在XML文檔中,所以必須使用腳本語言將內容解析出來完成相應更新。
Ajax作為J2EE標準定義的一種異步傳輸?shù)募夹g,能夠使程序開發(fā)人員在不重新加載頁面的情況下完成部分或者全部頁面的內容更新,大大提高了程序的響應時間和效率,而且使客戶端頁面的瀏覽者也節(jié)約了等待的時間[2]。由于Ajax綜合了JavaScript和XML,并且在使用過程中還涉及到JSP、數(shù)據(jù)庫操作等多種技術,對其的使用應該給予認真的理解和思考。期望本文通過針對Ajax實例的四個步驟解析能夠給初學者和開發(fā)者帶來一定啟示與幫助。