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%的性能提升。