最近要学习OScache,网上搜了一下,很多资料,发现其实也非常简单,在这里将自己的笔记贴出来:
1. 将oscache-2.4.1.jar 放入 lib 目录
2. 确认lib 目录下还有此 Jar 文件: commons-loggin.jar (有说法是 jdk1.4 以上则不用此步)
3. 将oscache.properties 放入 src 目录下,发布后会出现在 WEB-INF/class 目录下
4. 测试页面引用: <%@ taglib uri = "http://www.opensymphony.com/oscache" prefix = "cache" %> ,
(关于此步骤操作网上一般先是要把对应的标签文件 oscache.tld放入 WEB-INF\class 目录 , 后来发现在2.4 的 Jar 文件里已经封装了 TLD 文件 )
下来就是使用标签控制缓存了,主要要熟练标签的属性设置
...... ...... ......
5. 整页缓存采用 缓存过滤器CacheFilter ,需要在 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> 60 </param-value>
</init-param>
<init-param>
<param-name>scope</param-name>
<param-value>session</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
方案二:
CacheFilter只捕获 Http 头为 200 的页面请求,即只对无错误请求作缓存,
而不对其他请求(如500,404,400 )作缓存处理。 可对整个目录下的页面进行缓存,可用于景点的显示。
<!--页面级缓存处理 -->
<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> 1200 </param-value>
</init-param>
<init-param>
<param-name>disableCacheOnMethods</param-name>
<param-value>POST,PUT,DELETE</param-value>
</init-param>
<init-param>
<param-name>oscache-properties-file</param-name>
<param-value>
/WEB-INF/classes/oscache.properties
</param-value>
</init-param>
</filter>
<!-- 设置 oscache -->
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<url-patter/dwrdsfsdf/util.js</url-pattern>