top
Loading...
XML和JSP的聯手(2)
應用篇:一個在線相冊


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

一個圖象,需要它自己的一些字段:源文件( gif/jpeg)的定位,寬度和高度像素(以協助建立<img> 標記。 這里可以看到一個很簡單的優點,即使用文件系統來代替數據庫的時候,你可以將圖形文件存放在與數據文件相同的目錄中。

最后,讓我們來用一個元素擴展圖片記錄,該元素定義了一套縮略圖(thumbnail)來用于內容表或其它地方。這里我用了和先前同樣定義的圖片內容。

一張圖片的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>


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

-- 于是你的文件系統會是這樣的:

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

技術篇

俗話說,要剝下貓的皮的方法何止一種。同樣,將xml數據放到jsp中也不止一種辦法。這里列舉了其中一些方法,(其實,很多其它工具也可以做得同樣出色。)

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

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

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

cocoon: 你可以使用開放源碼的cocoon framework

運行你自己的bean: 你可以寫一個外殼類(wrapper class),使用某種其它技術來將數據加載到字定義的javabean中。


請注意這些技術將和一個你從另外來源取得的xml stream執行得同樣出色,例如一個客戶端或者一個應用服務器。

javaserver pages


jsp規范有很多替身,不同的jsp產品表現也不盡相同,不同版本之間也有差別。我選擇了tomcat,這基于以下原因:
它支持大多數最新的jsp/servlet規范
它受到 sun和apache認同
你可以獨立運行它而不需要另外配置一個web服務器。
它是開放源碼的

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

北斗有巢氏 有巢氏北斗