SiteMesh
外觀
![本頁使用了標題或全文手工轉換](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
此條目沒有列出任何參考或來源。 (2014年7月16日) |
SiteMesh是OpenSymphony開發的一個Java Web應用程式開發框架。
據OpenSymphony介紹,SiteMesh:
- 是一個Web頁面佈局、裝飾以及與現有Web應用整合的框架。有助於在由大量頁面構成的專案中建立一致的頁面佈局和外觀、一致的導覽列、一致的佈局方案等。
- 截取對Web伺服器的任何靜態或動態頁面的請求,解析頁面,從內容中獲得屬性和數據,生成對原頁面進行修改後的最終頁面——基於裝飾模式
- 此外可以以面板(Panel)的形式,將完整的HTML頁面包含在另一個頁面中——類似於伺服器端包含。使用此功能,可以非常快速和有效的建立入門網站類型的Web站點。這基於知名的組合模式。
- 基於Java 2的Servlet、JSP和XML技術。這使它在Java EE應用中很好用,而它也可以與非Java的伺服器端Web體系結構整合,例如CGI(Perl/Python/C/C++等)、PHP和ColdFusion。
- 擴充性很強,可以很容易地為自訂需求的進行擴充。
許可證
[編輯]SiteMesh使用修改自Apache許可證、並與Apache軟件許可證完全相容的OpenSymphony許可證。
原理
[編輯]SiteMesh使用一個Servlet過濾器,它可以攔截返回的Web瀏覽器的HTML,提取相關內容,並將其合併到被稱為裝飾器(Decorator)的模板。
歷史
[編輯]SiteMesh最初是在1999年由Joe Walnes開發的。當時它使用的Servlet鏈——一項不屬於標準Servlet規範,但被一些Servlet容器(如Orion Application Server)所支援的特性。
2000年,Servlet規範2.3版的第一次公示版發佈,其中包括了新增的Servlet過濾器——這提供了Servlet鏈的一個標準中的替代品。SiteMesh隨即改用Servlet過濾器取代Servlet鏈。
在此後不久,SiteMesh被決定作為開源軟件發佈。Joe Walnes和Mike Cannon-Brookes組建了OpenSymphony專案,用以提供Java EE組件的原始碼——其前兩個專案便是SiteMesh和OSCache。
這時,SiteMesh的有一個非常小的用戶群,當中的許多人加入這個專案的開發。SiteMesh開始開源後沒多久,Victor Salaman覆寫了其內部的HTML解析器,產生了1200%的效能提升。