應用篇:一個在線相冊
所有人都喜歡照相!他們喜歡展示自己的,親人的,朋友的,度假時的照片,而 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) 可能剛剛好地適合要求。