工作和重復工作
除了分離表示和內容外另一個衡量表示技術的可用性的指標是能夠消除多少重復的工作表示和內容的分離也促使內容開發人員之間的角色分離程序員可以關注上例所示的原始內容而圖形設計師或網絡管理員則關注表示然而在獲得圖形設計師設計的表示(或標記)並將它應用到程序員代碼提供的內容中時角色之間仍然有一定重復
在最簡單的情況下設計師提供標記而開發人員提供代碼並把標記插入到表示技術中應用程序被 啟動內容魔術般地變成了用戶界面當然我們都知道開發遠遠沒有結束接下來要重新修訂版本修改界面還必須添加新的業務規則這能真正考驗表示技術的靈活性雖然很容易更新插入到表示層的原始內容但是圖形設計師很少能夠輕松地編輯他們的初始工作經常要修改表示層(我們常常按照銷售部門的 指使 進行修改)因此問題產生了設計師要修改哪些內容來調整他們的工作?是他們提供給開發人員的原始標記語言頁面嗎?也許不是因為這個頁面很可能插入了自定義標記或代碼(JSP 頁面模板引擎)被轉換為一個 Java servlet或修改為完全無法識別的內容
設計師通常需要重新設計頁面並重新將其提交給開發人員然後再由開發人員將頁面重新轉換為特定的格式以供表示技術使用或者設計師必須學習一種腳本編制語言或至少知道 開發人員提供的頁面源代碼中哪部分是違規的當然這種方法容易出錯並且使用起來不安全當您了解到某種表示技術允許清晰地分離內容和表示後您應該確保將修改表示層所需的重復工作減至最小
JSP 技術的承諾
現在讓我們具體看一下 JSP 編碼JSP 技術承諾為設計師和開發人員提供他們所需的惟一表示技術JSP 技術是 JEE 平台的一部分這充分展示了 Sun 為其 Java 產品提供的強大支持為了使您了解這個解決方案的流行程度請嘗試在 amazoncom 中搜索一下 JSP您將發現大量與 JSP 技術有關的書籍它會遠遠超過任何單獨一種 Java API在詳細探討 JSP 技術引發的具體問題之前您應該清楚地了解這種技術的承諾
內容和表示
首先JSP 技術與內容和表示的分離有關是 Sun 發布的有關 JSP 頁面的最主要目標實際上一些代碼開發人員抱怨將 outprintln(﹤HTML﹥﹤HEAD﹥﹤TITLE﹥ + pageInfogetTitle() + ﹤/TITLE﹥﹤/HEAD﹥) 鍵入到 servlet這直接導致了 JSP 的設計在硬編碼內容中混入運行時變量加重了 servlet 開發人員的負擔並且使開發人員更加難對表示層進行修改即使非常小的修改也是如此
JSP 技術解決了這個問題它允許在運行時將普通的 HTML 頁面(後來還包括 WHM 或其他標記語言)編譯到 Java servlet 中實際上效仿了 outprintln() 范例而不需要開發人員編寫代碼它允許您將變量插入到在運行時才進行解釋的頁面
在一個 JSP 頁面中清單 所示的 HTML 片段應該類似清單 中的示例
﹤%@ page import=
com
ibm
display
PageUtils
%﹥
﹤%@ page import=
com
ibm
display
PageInfo
%﹥
﹤%
PageInfo pageInfo = (PageInfo)session
getAttribute(
PAGE_DATA
)
%﹥
﹤HTML﹥
﹤HEAD﹥
﹤TITLE﹥
﹤%=pageInfo
getTitle()%﹥
﹤/TITLE﹥
﹤/HEAD﹥
﹤BODY﹥
﹤!
Other HTML content
﹥
﹤/BODY﹥
﹤/HTML﹥
根據最初的原則判斷JSP 技術(至少在其說明的設計中)可以滿足表示技術的基本原則正如上面概況的一樣內容與表示分離
代碼和標記
JSP 技術特性列表上的第二項可能會出現一些問題JSP 代碼可以讓您將 Java 代碼直接插入到標記頁面在開發 JSP 規范時Microsoft Active Server Pages (ASP) 大獲成功因此 Sun 與 Microsoft 之間的競爭空前激烈這導致了這個決策的產生JavaServer Pages 的名稱與 Active Server Pages 類似並非偶然並且對眾多 API 特性的模仿也是蓄意而為因此 JSP 創建者需要能夠將 Java 代碼添加到他們的標記中
[] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20761.html