java oscache_javaWeb Cache技术――OSCache(转-全)

48304ba5e6f9fe08f3fa1abda7d326ab.png

OSCache使用指南

一、下载安装

OSCache是一个基于web应用的组件,他的安装工作主要是对web应用进行配置,大概的步骤如下:

1. 下载、解压缩OSCache

从http://www.opensymphony.com/oscache/download.html下载合适的OSCache版本, 解压缩下载的文件到指定目录 。

2、新建立一个web应用

3、将OSCache集成到web项目当中。

(1)从解压缩目录取得oscache.jar 文件放到 /WEB-INF/lib 或相应类库目录中,jar文件名可能含有版本号和该版本的发布日期信息等。

(2)将etc目录下的oscache.properties、oscache.tld放入WEB-INF/class目录(确切说是放在项目的src目录下,编译的时候会自动生成在WEB-INF/class目录)。

(3)配置项目对应的oscache.properties参数信息。

(4)具体使用

A、缓存对象:直接调用API的接口即可(详见[Java]用OSCache进行缓存对象)

B、部分页面缓存:使用OSCache提供的taglib(修改web.xml文件,在web.xml文件中增加下面的内容,增加对OSCache提供的taglib的支持:oscache/WEB-INF/classes/ oscache.tld或者在jsp页面使用以下标签

)

C、整个页面的缓存:用CashFilter实现页面级缓存,可缓存单个文件、缓存URL pattern和自己设定缓存属性的缓存。

CacheFilter

com.opensymphony.oscache.web.filter.CacheFilter

time

600

scope

session

CacheFilter

*.jsp

[注] 只有客户访问时返回http头信息中代码为200(也就是访问已经成功)的页面信息才能够被缓存

三、OSCache的基本用法(缓存JSP页面中部分)

(一):Cache-OSCache提供的缓存标签

这是OSCache提供的标签库中最重要的一个标签,包括在标签中的内容将应用缓存机制进行处理,处理的方式将取决于编程者对cache标签属性的设置。

第一次请求到达时,标签中的内容被处理并且缓存起来,当下一个请求到达时,缓存系统会检查这部分内容的缓存是否已经失效,主要是以下几项:

1. 缓存时间超过了cache标签设置的time或者duration属性规定的超时时间

2. cron属性规定的时间比缓存信息的开始时间更晚

3. 标签中缓存的内容在缓存后又被重新刷新过

4. 其他缓存超期设定

如果符合上面四项中的任何一项,被缓存的内容视为已经失效,这时被缓存的内容将被重新处理并且返回处理过后的信息,如果被缓存的内容没有失效,那么返回给用户的将是缓存中的信息。

cache标签的属性说明:

key - 标识缓存内容的关键词。在指定的作用范围内必须是唯一的。默认的key是被访问页面的URI和后面的请求字符串。

你可以在同一个页面中使用很多cache标签而不指定他的key属性,这种情况下系统使用该页面的URI和后面的请求字符串,另外再自动给这些key增加一个索引值来区分这些缓存内容。但是不推荐采用这样的方式。

scope - 缓存发生作用的范围,可以是application或者session

time - 缓存内容的时间段,单位是秒,默认是3600秒,也就是一个小时,如果设定一个负值,那么这部分被缓存的内容将永远不过期。

duration - 指定缓存内容失效的时间,是相对time的另一个选择,可以使用简单日期格式或者符合USO-8601的日期格式。如:duration=''PT5M'' duration=''5s''等

refresh - false 或者true。

如果refresh属性设置为true,不管其他的属性是否符合条件,这部分被缓存的内容都将被更新,这给编程者一种选择,决定什么时候必须刷新。

mode - 如果编程者不希望被缓存的内容增加到给用户的响应中,可以设置mode属性为"silent"

其它可用的属性还包括:cron 、groups、language、refreshpolicyclass、refreshpolicyparam。

上面的这些属性可以单独使用,也可以根据需要组合使用,下面的例子将讲解这些常用属性的使用方式。

(二) Cache标签实例分析:

1. 最简单的cache标签用法

使用默认的关键字来标识cache内容,超时时间是默认的3600秒

2. 用自己指定的字符串标识缓存内容,并且设定作用范围为session。

3.动态设定key值,使用自己指定的time属性设定缓存内容的超时时间,使用动态refresh值决定是否强制内容刷新。

因为OSCache使用key值来标识缓存内容,使用相同的key值将会被认为使用相同的的缓存内容,所以使用动态的key值可以自由的根据不同的角色、不同的要求决定使用不同的缓存内容。

4. 设置time属性为负数使缓存内容永不过期

5. 使用duration属性设置超期时间

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值