明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

XML與JSP的聯(lián)手(2)

[摘要]應(yīng)用篇:一個(gè)在線相冊(cè) 所有人都喜歡照相!他們喜歡展示自己的,親人的,朋友的,度假時(shí)的照片,而 web 是他們展示的好地方。-- 即使千里之外的親戚都可以看到。我將著重于定義一個(gè)單獨(dú)的picture對(duì)...
應(yīng)用篇:一個(gè)在線相冊(cè)


所有人都喜歡照相!他們喜歡展示自己的,親人的,朋友的,度假時(shí)的照片,而 web 是他們展示的好地方。-- 即使千里之外的親戚都可以看到。我將著重于定義一個(gè)單獨(dú)的picture對(duì)象。(這一應(yīng)用的源代碼在resources中可以取得) 。該對(duì)象描述了表示一張照片所需要的字段:title,date,一個(gè)可選的標(biāo)題,以及對(duì)圖片來(lái)源的一個(gè)指向。

一個(gè)圖象,需要它自己的一些字段:源文件( gif/jpeg)的定位,寬度和高度像素(以協(xié)助建立<img> 標(biāo)記。 這里可以看到一個(gè)很簡(jiǎn)單的優(yōu)點(diǎn),即使用文件系統(tǒng)來(lái)代替數(shù)據(jù)庫(kù)的時(shí)候,你可以將圖形文件存放在與數(shù)據(jù)文件相同的目錄中。

最后,讓我們來(lái)用一個(gè)元素?cái)U(kuò)展圖片記錄,該元素定義了一套縮略圖(thumbnail)來(lái)用于內(nèi)容表或其它地方。這里我用了和先前同樣定義的圖片內(nèi)容。

一張圖片的xml表示可以是這樣的:

<picture>
<title>alex on the beach</title>
<date>1999-08-08</date>
<caption>trying in vain to get a tan</caption>
<image>
<src>alex-beach.jpg</src>
<width>340</width>
<height>200</height>
</image>
<thumbnails>
<image>
<src>alex-beach-sm.jpg</src>
<width>72</width>
<height>72</height>
</image>
<image>
<src>alex-beach-med.jpg</src>
<width>150</width>
<height>99</height>
</image>
</thumbnails>
</picture>


注意,通過(guò)使用xml, 你將一張單獨(dú)圖片的全部信息放到了一個(gè)單獨(dú)的文件中,而不是將它分散放入3-4個(gè)表中。
我們將這稱(chēng)為 .pix file

-- 于是你的文件系統(tǒng)會(huì)是這樣的:

summer99/alex-beach.pix
summer99/alex-beach.jpg
summer99/alex-beach-sm.jpg
summer99/alex-beach-med.jpg
summer99/alex-snorkeling.pix
etc.

技術(shù)篇

俗話說(shuō),要?jiǎng)兿仑埖钠さ姆椒ê沃挂环N。同樣,將xml數(shù)據(jù)放到j(luò)sp中也不止一種辦法。這里列舉了其中一些方法,(其實(shí),很多其它工具也可以做得同樣出色。)

dom: 你可以使用類(lèi)(classes)來(lái)調(diào)用dom接口(interface)對(duì)xml文件進(jìn)行分析檢查。
xmlentrylist: 你可以使用我的代碼來(lái)將xml加載到name-value pairs 的java.util.list中。

xpath: 你可以使用一個(gè) xpath處理器(如resin)通過(guò)路徑名在xml文件中定位元素。

xsl:你可以使用某種xsl處理器將xml轉(zhuǎn)換成為html。

cocoon: 你可以使用開(kāi)放源碼的cocoon framework

運(yùn)行你自己的bean: 你可以寫(xiě)一個(gè)外殼類(lèi)(wrapper class),使用某種其它技術(shù)來(lái)將數(shù)據(jù)加載到字定義的javabean中。


請(qǐng)注意這些技術(shù)將和一個(gè)你從另外來(lái)源取得的xml stream執(zhí)行得同樣出色,例如一個(gè)客戶端或者一個(gè)應(yīng)用服務(wù)器。

javaserver pages


jsp規(guī)范有很多替身,不同的jsp產(chǎn)品表現(xiàn)也不盡相同,不同版本之間也有差別。我選擇了tomcat,這基于以下原因:
它支持大多數(shù)最新的jsp/servlet規(guī)范
它受到 sun和apache認(rèn)同
你可以獨(dú)立運(yùn)行它而不需要另外配置一個(gè)web服務(wù)器。
它是開(kāi)放源碼的

你可以選擇任何你喜歡的jsp引擎,但要自己配置它,它必須至少支持jsp 1.0規(guī)范。0.91和1.0之間有了許多區(qū)別。而jswdk (java server web development kit) 可能剛剛好地適合要求。