成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Java對(duì)象序列化怎么實(shí)現(xiàn)-創(chuàng)新互聯(lián)

本篇內(nèi)容介紹了“Java對(duì)象序列化怎么實(shí)現(xiàn)”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站專(zhuān)業(yè)為企業(yè)提供清徐網(wǎng)站建設(shè)、清徐做網(wǎng)站、清徐網(wǎng)站設(shè)計(jì)、清徐網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、清徐企業(yè)網(wǎng)站模板建站服務(wù),十載清徐做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。


從 Java 類(lèi)產(chǎn)生 XML

把 Ajax 響應(yīng)作為 XML 來(lái)傳遞有許多原因:每個(gè)支持 Ajax 的瀏覽器都有導(dǎo)航 XML 文檔的方法,也有許多服務(wù)器端技術(shù)可以處理 XML 數(shù)據(jù)。

通過(guò)制定一個(gè)方案,描述要交換的文檔類(lèi)型,在 Ajax 客戶(hù)端和服務(wù)器端之間很容易定義合約,而且如果服務(wù)器端架構(gòu)采用面向服務(wù)的方式,那么使用 XML 也可以允許非 Ajax 客戶(hù)機(jī)使用您提供的數(shù)據(jù)。

我將考慮從 Java 對(duì)象產(chǎn)生 XML 數(shù)據(jù)的三種方法,并討論每種方法的優(yōu)劣。

自行進(jìn)行序列化

首先,可以從對(duì)象圖以編程的方式生成 XML。這種方式可以簡(jiǎn)單到只是在每個(gè) JavaBean 類(lèi)中實(shí)現(xiàn) toXml() 方法即可。然后就可以選擇合適的 XML API,讓每個(gè) bean 提供表示自己狀態(tài)的元素,并遞歸地對(duì)自己的成員調(diào)用對(duì)象圖。

顯然,這種方式無(wú)法擴(kuò)展到大量的類(lèi),因?yàn)槊總€(gè)類(lèi)都需要專(zhuān)門(mén)編寫(xiě)自己的 XML 生成代碼。從好的方面來(lái)看,這是一個(gè)實(shí)現(xiàn)起來(lái)簡(jiǎn)單的方式,沒(méi)有額外的配置支出或者更復(fù)雜的構(gòu)建過(guò)程支出,任何 JavaBean 圖都可以只用幾個(gè)調(diào)用就變成 XML 文檔。

我曾把XML標(biāo)記字符串連接在一起,實(shí)現(xiàn)了toXml()方法。上次我就提到過(guò),這是個(gè)糟糕的方法,因?yàn)樗汛_保標(biāo)記配對(duì)、實(shí)體編碼等工作的負(fù)擔(dān)放在每個(gè) toXml() 方法的代碼中。

在 Java 平臺(tái)上有幾個(gè) XML API 可以替您做這些工作,這樣您就可以把精力集中在 XML 的內(nèi)容上。清單 1 用 JDOM API 實(shí)現(xiàn)了在線(xiàn)商店示例中表示訂單的類(lèi)中的 toXml()(請(qǐng)參閱 圖 1)。

清單 1. Order 類(lèi)的 toXml() 的 JDOM 實(shí)現(xiàn)

public Element toXml()

{

Element elOrder = new Element("order");

elOrder.setAttribute("id",id);

elOrder.setAttribute

("cost",getFormattedCost());

Element elDate = 

new Element("date").addContent(date);

elOrder.addContent(elDate);

Element elItems = new Element("items");

for (Iterator

在這里可以看到用 JDOM 創(chuàng)建元素、使用屬性和添加元素內(nèi)容有多么簡(jiǎn)單。遞歸地調(diào)用復(fù)合 JavaBean 的 toXml() 方法是為了取得它們子圖的 Element 表示。例如,items 元素的內(nèi)容是通過(guò)調(diào)用 Order 聚合的每個(gè) Item 對(duì)象上的 toXml() 得到的。

一旦所有的 JavaBean 都實(shí)現(xiàn)了 toXml() 方法,那么把任意對(duì)象圖序列化成 XML 文檔并返回給 Ajax 客戶(hù)機(jī)就簡(jiǎn)單了,如清單 2 所示。

清單 2. 從 JDOM 元素生成 XML 響應(yīng)

public void doGet(HttpServletRequest req, 

HttpServletResponse res)

throws java.io.IOException, 

ServletException

{

String custId = 

req.getParameter("username");

Customer customer =

getCustomer(custId);

Element responseElem = 

customer.toXml();

Document responseDoc = 

new Document(responseElem);

res.setContentType("application/xml");

new XMLOutputter().output

(responseDoc,res.getWriter());

}

JDOM 再次把工作變得非常簡(jiǎn)單。只需要在對(duì)象圖返回的 XML 元素外面包裝一個(gè) Document,然后用 XMLOutputter 把文檔寫(xiě)入 servlet 響應(yīng)即可。清單 3 顯示了用這種方式生成的 XML 示例,用 JDOM Format.getPrettyFormat() 對(duì) XMLOutputter進(jìn)行初始化,格式化得非常好。在這個(gè)示例中,顧客只做了一個(gè)訂單,包含兩個(gè)商品。

“Java對(duì)象序列化怎么實(shí)現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)頁(yè)標(biāo)題:Java對(duì)象序列化怎么實(shí)現(xiàn)-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://jinyejixie.com/article6/dedcog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、電子商務(wù)、商城網(wǎng)站、Google、網(wǎng)站策劃、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
福泉市| 上饶县| 亚东县| 尖扎县| 仁布县| 珲春市| 永兴县| 陆丰市| 古丈县| 即墨市| 青州市| 汉沽区| 赫章县| 黄浦区| 化州市| 香河县| 平乐县| 阳原县| 博爱县| 神池县| 宁乡县| 仁布县| 阜平县| 牡丹江市| SHOW| 庐江县| 广南县| 淳安县| 巢湖市| 阿巴嘎旗| 威海市| 施甸县| 北京市| 高邑县| 固阳县| 黎城县| 达拉特旗| 宣武区| 普安县| 邵东县| 滨海县|