ajax 的 java 對象序列化

ajax 的 java 對象序列化

ID:8253984

大?。?8.50 KB

頁數:14頁

時間:2018-03-13

ajax 的 java 對象序列化_第1頁
ajax 的 java 對象序列化_第2頁
ajax 的 java 對象序列化_第3頁
ajax 的 java 對象序列化_第4頁
ajax 的 java 對象序列化_第5頁
資源描述:

《ajax 的 java 對象序列化》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、Ajax的Java對象序列化2005-11-1716:37出處:developerWorks如果您正在使用異步JavaScript和XML(Ajax)進行Java?Web開發(fā),那么您最關心的問題可能就是把數據從服務器傳遞給客戶機。在面向Java開發(fā)人員的Ajax系列的文章中,PhilipMcCarthy介紹了Java對象序列化的五種方式,并提供了選擇最適合應用程序的數據格式和技術所需要的全部信息。本文將側重于許多JavaWeb開發(fā)人員最關心的問題:為客戶機生成數據。多數Java開發(fā)人員已經把模型-視圖-控制器(MVC)模式應用在他們的Web

2、應用程序上。在傳統(tǒng)的Web應用程序中,視圖組件由JSP或者其他表示技術(例如Velocity模板)構成。這些表示組件動態(tài)地生成全新的HTML頁面,替代用戶以前正在查看的頁面,從而更新用戶界面。但是,在JavaWeb應用程序使用AjaxUI的情況下,基于從XMLHttpRequest的響應接收到的數據,JavaScript客戶端代碼對于更新用戶看到的內容負有最終責任。從服務器的角度來看,視圖成為它響應客戶機請求而發(fā)送的數據表示。這篇文章側重于可以用來生成Java對象以數據為中心的視圖的技術。我將演示可以把JavaBeans變成XML文檔的各種

3、方法,并且討論每種方法的優(yōu)劣。您將看到為什么XML并不總是最好的途徑:對于簡單的Ajax請求來說,傳輸純文本更好。最后,我將介紹JavaScript對象標注(JSON)。JSON允許數據以序列化的JavaScript對象圖的形式傳輸,在客戶端代碼中處理序列化的JavaScript對象圖極為容易。關于示例我將使用一個示例應用程序和幾個用例來演示這里討論的技術特性和技術。圖1顯示的極為簡單的數據模型可以表示示例用例。這個模型代表在線商店中的顧客帳戶。顧客擁有以前訂單的集合,每個訂單包含幾個商品。圖1.簡單的對象模型雖然XMLHttpReques

4、t對于發(fā)送數據使用的格式沒有做任何限制,但是對于多數目的來說,只發(fā)送傳統(tǒng)的表單數據是適合的,所以我的討論集中在服務器的響應上。響應也可以有基于文本的格式,但是正如它的名字表示的,XMLHttpRequest具有內置的處理XML響應數據的能力。這使XML成為Ajax響應的默認選擇,所以我們從XML格式開始討論。從Java類產生XML把Ajax響應作為XML來傳遞有許多原因:每個支持Ajax的瀏覽器都有導航XML文檔的方法,也有許多服務器端技術可以處理XML數據。通過制定一個方案,描述要交換的文檔類型,在Ajax客戶端和服務器端之間很容易定義合

5、約,而且如果服務器端架構采用面向服務的方式,那么使用XML也可以允許非Ajax客戶機使用您提供的數據。我將考慮從Java對象產生XML數據的三種方法,并討論每種方法的優(yōu)劣。自行進行序列化首先,可以從對象圖以編程的方式生成XML。這種方式可以簡單到只是在每個JavaBean類中實現(xiàn)toXml()方法即可。然后就可以選擇合適的XMLAPI,讓每個bean提供表示自己狀態(tài)的元素,并遞歸地對自己的成員調用對象圖。顯然,這種方式無法擴展到大量的類,因為每個類都需要專門編寫自己的XML生成代碼。從好的方面來看,這是一個實現(xiàn)起來簡單的方式,沒有額外的配置

6、支出或者更復雜的構建過程支出,任何JavaBean圖都可以只用幾個調用就變成XML文檔。在前一篇文章的示例代碼中,我把XML標記字符串連接在一起,實現(xiàn)了toXml()方法。上次我就提到過,這是個糟糕的方法,因為它把確保標記配對、實體編碼等工作的負擔放在每個toXml()方法的代碼中。在Java平臺上有幾個XMLAPI可以替您做這些工作,這樣您就可以把精力集中在XML的內容上。清單1用JDOMAPI實現(xiàn)了在線商店示例中表示訂單的類中的toXml()(請參閱圖1)。清單1.Order類的toXml()的JDOM實現(xiàn)publicElementto

7、Xml(){?ElementelOrder=newElement("order");elOrder.setAttribute("id",id);?elOrder.setAttribute("cost",getFormattedCost());?ElementelDate=newElement("date").addContent(date);elOrder.addContent(elDate);?ElementelItems=newElement("items");for(Iteratoriter=items.iterator(

8、);iter.hasNext();){elItems.addContent(iter.next().toXml());}elOrder.addContent(elItems);?

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。