SiteMesh
此條目沒有列出任何參考或來源。 (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%的效能提升。