- 浏览: 250238 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (192)
- 技术研究学习 (19)
- 工作总结 (4)
- spring3.x (11)
- mail (2)
- jar (2)
- FCKeditor (1)
- quartz (2)
- json (1)
- jdbc (5)
- struts2 (6)
- java基础 (18)
- jboss (3)
- IT名称解析 (1)
- 测试工具 (2)
- 工作趣谈 (1)
- 数据库 (8)
- js (8)
- jquery (1)
- mysql (20)
- Sql (3)
- Oracle (1)
- easyui (0)
- log4j (1)
- 源码研究 (1)
- Jasper Report (0)
- Jbpm4 (4)
- xml (1)
- ireport (0)
- javavm (1)
- sitemesh (5)
- compass (1)
- jvm (1)
- ext (1)
- lucene (0)
- cxf (1)
- Blazeds (0)
- Resteasy (1)
- jaxb (1)
- tomcat (1)
- Rmi (1)
- BoneCP (1)
- velocity (3)
- OSCache (1)
- EHCache (1)
- 高性能开发 (9)
- 设计模式 (0)
- 网络协议应用 (1)
- Ibatis (1)
- powerdesigner (1)
- 架构师之路 (2)
- memcached (4)
- MapReduce (1)
- 测试组 (1)
- 图像处理 (2)
- LoadRunner (2)
- 报表 (1)
- 负载均衡 (1)
- 分布式 (3)
- c# (1)
- java中一些特殊问题 (3)
- java 8 (1)
- Mogodb (1)
- 项目设计与实现 (2)
- Ubuntu (1)
- eclipse (1)
- gradle (1)
- 私有云 (1)
- redis (1)
- 移动前端 (1)
最新评论
最新下载地址:https://github.com/sitemesh
1. 加入lib/sitemesh-2.4.2.jar
2.在web.xml 文件中加过滤器
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
3.从sitemesh-2.4.2.jar 中拷出sitemesh-default.xml 复制到工程的WEB-INF目录下,sitemesh.xml
<sitemesh>
<property name="decorators-file" value="/WEB-INF/decorators.xml"/>
<excludes file="${decorators-file}"/>
<page-parsers>
<parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser"/>
</page-parsers>
<decorator-mappers>
<mapper class="com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper">
<param name="property.1" value="meta.decorator"/>
<param name="property.2" value="decorator"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.FrameSetDecoratorMapper">
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.AgentDecoratorMapper">
<param name="match.MSIE" value="ie"/>
<param name="match.Mozilla [" value="ns"/>
<param name="match.Opera" value="opera"/>
<param name="match.Lynx" value="lynx"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.PrintableDecoratorMapper">
<param name="decorator" value="printable"/>
<param name="parameter.name" value="printable"/>
<param name="parameter.value" value="true"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.RobotDecoratorMapper">
<param name="decorator" value="robot"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper">
<param name="decorator.parameter" value="decorator"/>
<param name="parameter.name" value="confirm"/>
<param name="parameter.value" value="true"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.FileDecoratorMapper">
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}"/>
</mapper>
</decorator-mappers>
</sitemesh>
注意:sitemesh主要用于装饰处理信息,对页面的解析和装饰器配置等等,一般采用默认的即可
配置文件中page-parser 请采用sitemesh.parser.HTMLPageParser 可以解决页面中文乱码问题
4.添加装饰模板decorators.xml配置 文件到WEB-INF 该文件主要用于sitemesh的配置规则。
主要有两个节点:exclude:指定了节点请求不适用任何模板
decorator:指定了模板的位置和文件名,通过pattern指定那些url使用那些模板
<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/WEB-INF/jsp/decorators"> //指定了模板文件存放的目录
<excludes>
<pattern>/scripts/*</pattern> //排除的连接
</excludes>
<decorator name="store" page="store_main.jsp"> //指定使用的模板
<pattern>/omsStore/*</pattern> //使用装饰的连接
<pattern>/omsCustomer/*</pattern>
</decorator>
5.模板页面的定义
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@taglib prefix="sec"
uri="http://www.springframework.org/security/tags"%>
<%@taglib uri="http://www.springframework.org/security/tags"
prefix="security"%>
<%@taglib uri="http://www.opensymphony.com/sitemesh/decorator"
prefix="decorator"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><decorator:title default="********" /></title>
<link href="<c:url value="/styles/jquery-ui/jquery-ui.css" />"rel="stylesheet" type="text/css" />
<link href="<c:url value="/styles/tools.css" />"rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/styles/list.css"></link>
<link rel="stylesheet" type="text/css"
href="${pageContext.request.contextPath}/styles/jquery.lightTreeview.css"></link>
<script type="text/javascript"
src="${pageContext.request.contextPath}/scripts/jquery.lightTreeview.pack.js">
</script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/scripts/jquery.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/scripts/pglist.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/scripts/selectOperate.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/scripts/jquery.tools.min.js"></script>
<decorator:head />
</head>
<body>
<div class="tableBox">
<decorator:body />
</div>
</body>
</html>
6.总结:1.模板页得作用主要是将功能页中通用的、与业务功能不相关的代码进行分离,统一管理,从而达到代码的重用,如页面布局,css,js等等。
2.凡是能经过过滤器请求的页面,都可以使用上面的js,css等,页面自身的内容放到<decorator:body />中
3.<decorator:head />读取装饰器页面head的内容
4.<decorator:title/> 读取装饰器页面title的内容
7.常见的问题:
1.在运行过程中无法显示模板页,查看配置的路径(pattern),查看web.xml文件Filter是否采用sitemesh.filter.pageFilter
2.无法显示功能页,只能显示模板页,查看<decorator:body />的位置
3.在web logic 中出现了中文乱码,查看sitemesh.xml文件 <page-parsers> 是否采用sitemesh.parser.HTMLPageParser
8.标签:
被用于建立装饰器页面.
<decorator:head />
<decorator:body />
<decorator:title />
<decorator:getProperty />
<decorator:usePage />
被用于从原始内容页面访问装饰器.
<page:applyDecorator />
<page:param/>
9.性能问题:
使用sitemesh和不使用sitemesh对于虚拟机堆内存的使用差异不太大,但是在GC次数上的差异很大。从GC日志的详细信息可以看出,在使用sitemesh时,发生次要GC(Minor GC)的频率非常的高,可以推断在运行时期产生了大量的短生命周期的对象,然后又迅速的被释放,GC在新生代就已经完成了。主要GC(Major GC, Full GC)在使用sitemesh和不使用的情况下,均发生了1次,而且这1次主要GC也是在resin启动中发生的,不是应用在进行压力测试时发生的。由于使用sitemesh时的GC次数远远大于不使用sitemesh,所以在整个测试过程中,GC上消耗的时间也是差异非常大的。
不使用sitemesh时完成的请求数是使用sitemesh时的144.3%。同时页面响应时间也仅为使用sitemesh时的69.0%。
从上述测试数据来分析,使用sitemesh对于系统性能是有较大的影响的,主要表现在GC的次数会显著增多。建议在大压力、页面内容大的系统中,慎重选择sitemesh,并且使用之前对其带来的性能影响进行一个较为合理、全面的评估。
1. 加入lib/sitemesh-2.4.2.jar
2.在web.xml 文件中加过滤器
<filter>
<filter-name>sitemesh</filter-name>
<filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
3.从sitemesh-2.4.2.jar 中拷出sitemesh-default.xml 复制到工程的WEB-INF目录下,sitemesh.xml
<sitemesh>
<property name="decorators-file" value="/WEB-INF/decorators.xml"/>
<excludes file="${decorators-file}"/>
<page-parsers>
<parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.HTMLPageParser"/>
</page-parsers>
<decorator-mappers>
<mapper class="com.opensymphony.module.sitemesh.mapper.PageDecoratorMapper">
<param name="property.1" value="meta.decorator"/>
<param name="property.2" value="decorator"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.FrameSetDecoratorMapper">
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.AgentDecoratorMapper">
<param name="match.MSIE" value="ie"/>
<param name="match.Mozilla [" value="ns"/>
<param name="match.Opera" value="opera"/>
<param name="match.Lynx" value="lynx"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.PrintableDecoratorMapper">
<param name="decorator" value="printable"/>
<param name="parameter.name" value="printable"/>
<param name="parameter.value" value="true"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.RobotDecoratorMapper">
<param name="decorator" value="robot"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper">
<param name="decorator.parameter" value="decorator"/>
<param name="parameter.name" value="confirm"/>
<param name="parameter.value" value="true"/>
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.FileDecoratorMapper">
</mapper>
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}"/>
</mapper>
</decorator-mappers>
</sitemesh>
注意:sitemesh主要用于装饰处理信息,对页面的解析和装饰器配置等等,一般采用默认的即可
配置文件中page-parser 请采用sitemesh.parser.HTMLPageParser 可以解决页面中文乱码问题
4.添加装饰模板decorators.xml配置 文件到WEB-INF 该文件主要用于sitemesh的配置规则。
主要有两个节点:exclude:指定了节点请求不适用任何模板
decorator:指定了模板的位置和文件名,通过pattern指定那些url使用那些模板
<?xml version="1.0" encoding="UTF-8"?>
<decorators defaultdir="/WEB-INF/jsp/decorators"> //指定了模板文件存放的目录
<excludes>
<pattern>/scripts/*</pattern> //排除的连接
</excludes>
<decorator name="store" page="store_main.jsp"> //指定使用的模板
<pattern>/omsStore/*</pattern> //使用装饰的连接
<pattern>/omsCustomer/*</pattern>
</decorator>
5.模板页面的定义
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@taglib prefix="sec"
uri="http://www.springframework.org/security/tags"%>
<%@taglib uri="http://www.springframework.org/security/tags"
prefix="security"%>
<%@taglib uri="http://www.opensymphony.com/sitemesh/decorator"
prefix="decorator"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><decorator:title default="********" /></title>
<link href="<c:url value="/styles/jquery-ui/jquery-ui.css" />"rel="stylesheet" type="text/css" />
<link href="<c:url value="/styles/tools.css" />"rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/styles/list.css"></link>
<link rel="stylesheet" type="text/css"
href="${pageContext.request.contextPath}/styles/jquery.lightTreeview.css"></link>
<script type="text/javascript"
src="${pageContext.request.contextPath}/scripts/jquery.lightTreeview.pack.js">
</script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/scripts/jquery.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/scripts/pglist.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/scripts/selectOperate.js"></script>
<script type="text/javascript"
src="${pageContext.request.contextPath}/scripts/jquery.tools.min.js"></script>
<decorator:head />
</head>
<body>
<div class="tableBox">
<decorator:body />
</div>
</body>
</html>
6.总结:1.模板页得作用主要是将功能页中通用的、与业务功能不相关的代码进行分离,统一管理,从而达到代码的重用,如页面布局,css,js等等。
2.凡是能经过过滤器请求的页面,都可以使用上面的js,css等,页面自身的内容放到<decorator:body />中
3.<decorator:head />读取装饰器页面head的内容
4.<decorator:title/> 读取装饰器页面title的内容
7.常见的问题:
1.在运行过程中无法显示模板页,查看配置的路径(pattern),查看web.xml文件Filter是否采用sitemesh.filter.pageFilter
2.无法显示功能页,只能显示模板页,查看<decorator:body />的位置
3.在web logic 中出现了中文乱码,查看sitemesh.xml文件 <page-parsers> 是否采用sitemesh.parser.HTMLPageParser
8.标签:
被用于建立装饰器页面.
<decorator:head />
<decorator:body />
<decorator:title />
<decorator:getProperty />
<decorator:usePage />
被用于从原始内容页面访问装饰器.
<page:applyDecorator />
<page:param/>
9.性能问题:
使用sitemesh和不使用sitemesh对于虚拟机堆内存的使用差异不太大,但是在GC次数上的差异很大。从GC日志的详细信息可以看出,在使用sitemesh时,发生次要GC(Minor GC)的频率非常的高,可以推断在运行时期产生了大量的短生命周期的对象,然后又迅速的被释放,GC在新生代就已经完成了。主要GC(Major GC, Full GC)在使用sitemesh和不使用的情况下,均发生了1次,而且这1次主要GC也是在resin启动中发生的,不是应用在进行压力测试时发生的。由于使用sitemesh时的GC次数远远大于不使用sitemesh,所以在整个测试过程中,GC上消耗的时间也是差异非常大的。
不使用sitemesh时完成的请求数是使用sitemesh时的144.3%。同时页面响应时间也仅为使用sitemesh时的69.0%。
从上述测试数据来分析,使用sitemesh对于系统性能是有较大的影响的,主要表现在GC的次数会显著增多。建议在大压力、页面内容大的系统中,慎重选择sitemesh,并且使用之前对其带来的性能影响进行一个较为合理、全面的评估。
相关推荐
SiteMesh框架在Java项目中的应用 SiteMesh是一个非常优秀的页面装饰器框架,它将页面共用的内容放在装饰器页面中,通过对所有用户请求和服务器响应进行过滤,把装饰器中指定的共用内容插入到被装饰页面中,从而形成...
要在Eclipse工程中使用Sitemesh,首先需要将其依赖库添加到项目中,通常通过Maven或Gradle来管理。接着,需要配置web.xml文件,声明Sitemesh的过滤器(`com.opensymphony.sitemesh.webapp.SiteMeshFilter`),并设置...
SiteMesh 是一个开源的Web应用程序布局和装饰框架,主要用于解决Web应用中的页面布局问题。它通过拦截HTTP请求,将页面内容与预定义的布局模板相结合,实现统一的页面头部、底部和侧边栏等元素,从而提高网站的整体...
Sitemesh是一款强大的Web页面布局和装饰框架,它主要用于帮助开发者实现网站的统一外观和...通过这个简单的入门教程,你可以快速掌握Sitemesh的基本操作,并将其应用到自己的项目中,提升网站的用户体验和设计品质。
在实际应用中,应根据具体需求权衡性能与开发效率之间的平衡。 #### SiteMesh与Freemarker的集成 除了基本的页面装饰功能之外,SiteMesh还支持与模板引擎如Freemarker的集成,以便更灵活地处理动态内容。 **...
1. **安装与配置**:首先,需要将SiteMesh的JAR包添加到项目的类路径中,并在web.xml中配置SiteMesh Filter。配置完成后,SiteMesh会自动对所有请求的页面进行装饰。 2. **创建装饰器**:创建一个HTML或JSP文件作为...
通过研究这些示例,你可以更好地理解Sitemesh如何与Openfire配合工作,并将其应用到自己的项目中。 总的来说,Sitemesh通过提供页面装饰功能,简化了Web应用的界面设计,使开发者可以专注于业务逻辑,而无需过多...
Sitemesh技术是Web开发领域中一种用于页面装饰的重要工具,尤其在Java Web应用程序中被广泛应用。其核心功能在于能够统一网站的外观风格,使不同功能模块或页面在保持各自特性的同时,拥有统一的视觉效果和用户体验...
1. **易用性**:Sitemesh的配置简单,可以快速集成到现有的Java Web应用中。 2. **灵活性**:支持多种装饰模式,可以为不同类型的页面使用不同的装饰器。 3. **可扩展性**:可以通过自定义Filter或使用表达式语言...
它主要目的是帮助开发者统一网站的外观和感觉,通过提供一种简单的方式来装饰(或模板化)整个Web应用中的页面。Sitemesh3是Sitemesh项目的第三个主要版本,提供了更现代的API和性能改进。 在Sitemesh3的官方下载...
Sitemesh通过在Web应用中引入“母版”(Master Page)的概念,使得开发者可以轻松地创建一致性的页面模板,提高网页设计的效率和用户体验。 母版(Master Page)是Sitemesh的核心概念,它是一个包含公共元素(如页...
1. **集成SiteMesh**: 将SiteMesh的JAR文件添加到项目类路径中,并在Web应用的`web.xml`中配置SiteMesh过滤器。 2. **创建布局文件**: 设计并创建一个HTML布局模板,定义页面的结构和样式。 3. **配置SiteMesh**: ...
【sitemesh3-demo】是一个基于Sitemesh3框架的示例项目,旨在展示如何在Web应用程序中有效地实现页面布局和装饰功能。Sitemesh是一个开源的Java Web应用框架,主要用于增强网页的外观和结构,通过定义装饰模板,可以...
在web.xml中配置Sitemesh Filter,然后在SpringMVC的配置中添加Sitemesh的拦截器。在页面上使用Sitemesh标签(如)来定义页面布局。 6. **创建实体类**:根据数据库表结构,创建对应的Java实体类,并生成对应的...
而Sitemesh则是一个页面布局和装饰框架,主要用于处理Web应用中的页面布局问题,比如统一头部、底部和侧边栏,提升用户体验并简化开发。 将Spring MVC与Sitemesh结合使用,可以实现更高效的Web应用开发。以下是对这...
在"Sitemesh 例子"中,我们可以探索如何在实际项目中运用Sitemesh。首先,我们需要了解Sitemesh的基本配置。这通常涉及到在Web应用的web.xml文件中添加Sitemesh过滤器,如以下配置所示: ```xml <filter-name>...
通过学习这个"**sitemesh入门demo**",你可以快速掌握Sitemesh的基本使用,并将其应用到实际的Web项目中,提升页面布局的规范性和一致性。同时,深入理解Sitemesh的工作原理,将有助于你在复杂场景下更好地利用其...
SiteMesh是一款开源的Web应用程序界面布局框架,它主要用于帮助开发者实现网页的统一布局。...通过这个Demo,我们可以深入学习SiteMesh的工作机制,并将其应用到实际项目中,提升网站的专业性和用户体验。
在本项目中,Spring MVC与两个额外的技术——Sitemesh和Velocity进行了整合,增强了应用的模板渲染和页面布局能力。 Sitemesh 是一个开源的Web应用装饰器框架,主要用于统一网站的页面布局和样式。通过Sitemesh,...