使用OSCache实现页面的缓存,优化性能
OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。
OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。OSCache有以下特点:缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥有全面的API--OSCache API给你全面的程序来控制所有的OSCache特性。永久缓存--缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。支持集群--集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。
下载地址:
http://www.opensymphony.com/
http://java.net/downloads/oscache/
http://java.net/downloads/oscache/OSCache%202.4/
下载oscache-2.4-full.zip。
oscache-2.4.jar
\lib\commons-logging.jar
配置步骤:
第一步:把上述两个jar文件放置在web-inf/lib目录下
第二步:把OSCache安装目录下的/etc/oscache.properties文件放入/web-inf/classes目录。开发阶段可以把该文件放置在src目录。
一、页面的局部缓存:
缓存页面中的一部分。
我们使用Oscache的标签<oscache></oscache>来进行页面的局部缓存,使用方法如下:
<uri="http://www.opensymphony.com/oscache" prefix="oscache" %>
<oscache:cache>
<%=new Date()%>
</oscache:cache>
缓存的key将以请求的URI+查询字符串组成,如果你访问/oscache/index.jsp?name=ttt和/oscache/index.jsp?name=ppp将得到两份缓存。缓存默认存放在application范围,缓存时间默认为3600秒,即1小时。
<oscache:cache key="name">
name=${param.name}
</oscache:cache>
这时候缓存将以name为key,不再是请求的URI+查询字串组成,所以如果你访问/oscache/index.jsp?name=ttt和/oscache/index.jsp?name=ppp将得到一份缓存。
<oscache:cache key="name" scope="session">
name=${param.name}
</oscache:cache>
缓存范围设置为session,这时候缓存保存在用户的session中,如果用户把浏览器关闭,再重新打开一个新浏览器,原来缓存的内容将不存在。
设置缓存的时间为15秒,超时后缓存的内容将失掉:
<oscache:cache key="name" time="15">
name=${param.name}
</oscache:cache>
refresh为true将会导致缓存的内容过期而被清除,简单地说,该属性为true用于清除缓存。
<oscache:cache key="refresh" time="60" refresh="${param.refresh}">
name=${param.name}
</oscache:cache>
http://localhost:8080/oscache/index.jsp?refresh=false这样访问时不缓存内容不刷新
http://localhost:8080/oscache/index.jsp?refresh=true这样访问时缓存内容被刷新
人为管理缓存<oscache:flush/>标签:
<oscache:flush scope="application"/>
清除application范围内的所有缓存
<oscache:flush scope="session" key="foobar"/>
清除session范围内的key为foobar的缓存
<oscache:flush scope="application" group="currencyData"/>
清除application范围内的组名为currencyData的缓存
二、使用OSCache作页面全局缓存
页面全局缓存将使用Filter实现(巴巴运动网产品列表显示采用的方案):
<!-- OSCache 放在web.xml的最前面-->
<filter>
<filter-name>CacheFilter</filter-name>
<filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>
<init-param>
<param-name>time</param-name>
<param-value>7200</param-value>
</init-param>
<init-param>
<param-name>scope</param-name>
<param-value>application</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>/product/*</url-pattern>
</filter-mapping>
缓存的key将以请求的URI+查询字串组成,如果你访问/oscache/index.jsp?name=ttt和/oscache/index.jsp?name=ppp将得到两份缓存。缓存是在初次访问页面时进行的,后续的请求将会返回缓存中的内容。缓存中存放的内容为页面返回给用户的html源码。
清除缓存的方式与清除页面缓存相同。
OSCache的配置属性介绍:
cache.memory=true
指定是否使用内存缓存,默认值为true,即使用内存缓存。
cache.capacity
指定缓存的容量,默认的容量是无限的。我们可以为它设置缓存数量,如:
cache.capacity=100000
如果我们要使用硬盘缓存,可以这样设置:
cache.memory=false
cache.path=d:\\cache(指定缓存保存的路径,注意:路径应采用双\)
cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener
cache.persistence.class用于设置持久化类
相关推荐
NULL 博文链接:https://davidxiaozhi.iteye.com/blog/1045223
oscache-java缓存框架插件和安装教程,使用教程一步到位
通俗易懂,阿里大神详细介绍操作系统的缓存机制,优化要点
oscache,java,缓存机制的使用
SSM的整合+OScache页面缓存+freemark模板。这是一个很牛比的东西。看看啊
非常实用的一个例子,有关于缓存对象 list 或缓存地址或jsp或其它页面,在实例中都有,须望可以帮到大家
这里结合 天气预报的webservice 展示了OsCache框架的具体使用方法 项目可直接运行 ,代码简洁清晰
1、OSCache是什么? 2、OSCache的特点 3、有关“用OSCache进行缓存对象”的研究
oscache缓存技术,压缩包中有详细代码及步骤
OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决...
尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。 OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛...
尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。 OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛...
oscache缓存使用总结
oscache缓存技术入门实例
OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。
Hibernate OSCache缓存 Hibernate OSCache缓存
二级缓存插件OScache配置,很好的学习资料
OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存...
OSCache标记库由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的...
OSCache组件中提供了一个CacheFilter用于实现页面级的缓存,主要用于对web应用中的某些动态页面进行缓存,尤其是那些需要生成PDF 格式文件/报表、图片文件等的页面,不仅减少了数据库的交互、减少数据库服务器的压力...