使用OSCache

简介


OSCache是缓存工具。

网址: www.opensymphony.com/oscache/

由一组类和JSP标签库组成。

可细粒度的动态缓存JSP内容,Servlet响应或者任意对象。

可使用内存,或者持久化到硬盘缓存,并能为网站提供容错支持(比如数据库关闭了,网站使用缓存的内容,用户仍可访问网站内容)。

可用于
  • 缓存动态内容:网站为每个请求执行生成动态内容,但是有时内容对所有请求都没有变化。不过又不能缓存整个页面,因为部分内容可能在每个请求都发生变化。OSCache可缓存JSP页面片段。
  • 缓存二进制内容:生成图片和PDF很消耗服务器资源。OSCache实现的Servlet2.3的CachingFilter,缓存URI的响应内容。
  •  容错支持:当某个页面程序出现故障,因为用户访问的是缓存,因此有容错功能
特性列表:
  • 缓存任意对象:和HTTP请求,JSP无关,缓存java任何对象;
  • 全面的API:对OSCache的所有特性,都能通过API编程控制;
  • 持久化的缓存:缓存可选保存到磁盘,使缓存在系统重启后依然有效;
  • 集群:不需要修改代码,支持缓存的集群,并使用单一的配置参数;
  • 缓存实体的过期支持:提供很多控制功能,用于处理缓存内容的过期,如果默认过期功能不能满足要求,也可自定义RefreshPolicies。

安装

  • 下载并解压缩分发包,当前版本2.4.1,下载地址:http://www.opensymphony.com/oscache/download.action
  • 将oscache.jar加入到/WEB-INF/lib
  • 确保commons-logging.jar在/WEB-INF/lib
  • 设置oscache.properties,并保存到/WEB-INF/classes,可选

使用OSCache

缓存完整的网站页面

简介

OSCache使用Servlet API中的Filter透明缓存网站的页面和二进制内容(比如动态生成的图片)。

OSCache通过CacheFilter的配置文件缓存servlet的response对象。

OSCache只缓存HTTP200 OK的HTTP响应,也就是说,不会缓存报错。

配置示例

创建web项目。

编写test.jsp文件,任意内容。

加入安装一节提到的类库。

在web.xml文件中加入:

 
  1. <filter>  
  2.         <filter-name>CacheFilter</filter-name>  
  3.         <filter-class>  
  4.                 com.opensymphony.oscache.web.filter.CacheFilter  
  5.         </filter-class>  
  6. </filter>  
  7.   
  8. <filter-mapping>  
  9.         <filter-name>CacheFilter</filter-name>  
  10.         <url-pattern>*.jsp</url-pattern>  
  11. </filter-mapping>  

这样将针对url结尾是jsp的响应缓存。

可使用的其他参数,见oscache分发包中的文档。

缓存页面中部分内容


用于缓存页面部分内容。

创建JSP文件。

在页面中导入OSCache的标签:

 
  1. <%@ taglib uri="http://www.opensymphony.com/oscache" prefix="cache" %>  

在页面中编写一个需要缓存的内容:

  1. <h1>测试</h1>  
  2. <cache:cache>  
  3. OSCache缓存的内容。  
  4. </cache:cache>  

持久化缓存内容


就是将缓存内容保存到磁盘中。

可自定义配置文件,覆盖默认的配置文件,配置文件需要放置在classpath下,名称为:oscache.properties

使用磁盘做缓存的配置文件示例:

 
  1. cache.memory=false  
  2. cache.path=c:\\oscache  
  3. cache.capacity=1000  
  4. cache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener  

重启tomcat,日志提示创建缓存目录。

访问上面示例的页面,缓存内容被记录到缓存目录中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值