批判性地看待一種可行的表示技術:JavaServerPages servlet技術(上) (轉)

worldblog發表於2007-12-04
批判性地看待一種可行的表示技術:JavaServerPages servlet技術(上) (轉)[@more@]

 

技術 -- 是友還是敵?
批判性地看待一種可行的表示技術: ServerPages 技術

Brett McLaughlin
Lutris Technologies 公司的 enhydra 戰略家
2000 年 10 月


作為一名 Java 技術老手和新的 enhydra 擁護者,作者力勸開發人員在選擇設計 應用的途徑時,考慮一下 JavaServerPages (JSP) servlet 以外的其他方法。JSP 技術是 Sun 公司的 平臺和模型的一部分,是為解決如何把單調的內容變成引人注目的表示層這一難題而提出的解決方案。實際上,Web 開發人員也並非一致對 JSP 技術表示滿意。既然現在有 Sun 技術的多種變體可以使用,所以您可以在許多表示技術之間進行選擇。本文深入探討 JSP 編碼技術,並探究幾個有吸引力的替代方法。

表示技術設計用來將平淡的拉丁文原始 Web 內容轉化為包裝在有吸引力的表示層中的內容。JavaServer Pages (JSP) 技術,作為 Sun 公司的表示模型和 J2EE 平臺的一部分,受到了極大關注。使用 JSP 技術有利有弊,Web 開發人員應知曉這些利弊 -- 懂得他們不必拘泥於這一技術。實際上,近來出現了許多表示技術。本文以表示技術所要解決的問題為開端,然後考察 JSP 模型的特有優勢和弱點。最後,介紹幾個可以代替 Sun 的表示技術的可行方案。



歷史點滴

在深入解釋表示技術之前,介紹一些導致此技術產生的詳細背景資料很有幫助。僅僅在 10 年前,瘦客戶機還是一個很新的術語。那時我們還生活在桌上型電腦應用程式的世界中,使用低階的 286 微,眯著眼睛看 14 英寸的顯示器。但是現在時代不同了,朋友!現在,我的桌上型電腦除了執行 Web 之外什麼也不幹。我們使用 Sun、IBM、HP、Compaq 和其他公司的來執行計算、業務邏輯和內容。那個小顯示器呢?它已被又大又漂亮的 21 英寸和 25 英寸等離子體平面顯示器所取代。為什麼呢?因為這樣我們就可以觀看錯綜複雜的 HTML 顯示,而這些 HTML 顯示是強大的應用程式的前端。單調沉悶的介面已不能滿足要求;現在,我們希望看到華麗的圖形、移動的影像、色彩協調的表示,不管哪個房間看上去都那麼漂亮,並且能夠顯示出來。


前提

十年後的今天,作為雛形的 應用程式已經成為歷史,我們仍面臨著表示方法上的巨大轉變。悲慘的 和 C 程式設計師發現,他們現在只能編寫後端或僅用於 Windows 的應用程式,或者已在自己的工具箱中新增了能提供 Web 功能的語言,例如 Java 語言。不支援四分之三以上 ML 語言(如 HTML、 和 WML)的應用程式即使不被認為是完全失敗的,也會被認為是很低劣的。當然,這說明我們都很注重很容易地開發 Web 表示層的能力。


結果是,使用新的因特網,以及我們熟悉的所有語言(Java、C、、Pascal、 Ada 以及其他語言)都不像我們所希望的那麼容易。當將每個人都使用的程式語言用於後端程式並生成適用於客戶機的標記語言時,會出現一大量的問題。隨著瀏覽器提供更多的選項(例如 和 編碼)、Web 領域圖形藝術人才的增加、以及能夠使用標準 HTML 生成複雜介面的工具的出現,對別具一格的介面的需求比我們開發這些應用程式前端的能力增長得還要快。這就導致了表示技術的興起。


表示技術設計用來一項任務:將內容(即不帶顯示詳細資訊的資料)轉換為表示 -- 即您在電話、掌上或 Web 瀏覽器中看到的各種使用者介面。這些表示技術聲稱能夠解決哪些問題?讓我們來看一下。


隔離與整合

表示技術的最基本目的是使得內容和表示可以分離開來。換言之,業務邏輯單元(可能用 C 或 Java 語言編寫)不必以表示特定的方式生成程式碼。資料或者內容以原始形式返回,不帶任何格式。之後,表示技術為這些內容新增格式或表示。結果是,資料被圖形、格式、顏色和徽標環繞包圍起來。


請看清單 1 和清單 2 中的示例,看一下原始內容和結合了表示技術的內容之間的區別。


清單 1 顯示的是原始內容,除了資料外別無他物,可以透過多種方式使用。

清單 1. 只包含資料的原始內容

Russell Crowe
Tom Hanks
Meg Ryan
Mary Stuart Masterson
Alec Baldwin
Ashley Judd
Keanu Reeves




清單 2 就比上一個清單複雜多了,它顯示的是相同的資料,但這些資料包裝在表示技術中,並且隨時可以在支援 HTML 的瀏覽器中顯示。

清單 2. 用表示包裝的資料



 搜尋結果:演員


 

搜尋結果:演員


 

 
 
    BGCOLOR="#FFFFCC">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
BaldwinAlec
CroweRussell
HanksTom
JuddAshley
MastersonMary Stuart
ReevesKeanu
RyanMeg

 





清單 1 中的內容對毫無的外行人來說,易於理解,也便於使用。清單 2 中的內容則專用於在瀏覽器中顯示。從清單 2 中提取資料,或處理它用於其他目的,就需要有一些技巧。


這一基本區別 -- 將表示和內容分開而不是整合在一起的處理(至少在使用者不需要這些資訊時是這樣), 是表示技術(包括 JSP 技術)的前提。進一步說,沒有達到這一基本目標的表示技術就沒有真正實現設計的最初目的。



編寫與修改

除了將內容和表示分離開來以外,衡量表示技術是否有用的另外一個因素則是它所免除的修改工作量。表示和內容的分離加大了內容開發人員的角色差別。程式設計師可將注意力集中在前面示例中的原始內容上,圖形藝術家或網站管理員則可將精力放在表示上。但是,在把藝術家設計的表示或標記取出並加入到程式設計師編制的內容中時,還會出現一些角色交迭。


在最簡單的情況下,藝術家提供標記,開發人員提供程式碼並將標記插入表示技術中。然後,應用程式“啟動”,內容會魔術般地變成一個使用者介面。當然,我們都知道,開發工作通常不會僅止於此。下一步是修訂和更改介面,並編制新的業務規則,這正是檢驗表示技術靈活性的地方。雖然輸入到表示層中的原始資料通常並不難,但是圖形藝術家就很難對他們的原始作品進行編輯。對錶示層的更改是很常見的(我們都飽受過市場部門改這改那之苦)。所以,現在出現了這樣一個問題:設計人員應該從何處入手來更改他們的工作?是修改他們交給開發人員的原始標記語言頁嗎?可能不是。因為最可能的是,此頁很可能已插入定製標記或程式碼(JSP 頁、模板引擎)、轉化為 Java servlet、或者已變得面目全非了。


通常,設計人員必須在原始頁上進行修改,並再次把此頁交給開發人員。開發人員必須把此頁再次轉化為表示技術所使用的特定格式。否則,設計人員就必須學會一種指令碼語言,或至少懂得此頁中的哪些區域是禁止入內的。當然,這是一種容易出錯的、非常危險的方法。一旦您確定下來以一種表示技術支援內容和表示之間的明確分離,您就應確保改變表示所需的修改工作量限定在最小。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988183/,如需轉載,請註明出處,否則將追究法律責任。

相關文章