SiteMesh
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//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%的性能提升。