博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oscached
阅读量:6075 次
发布时间:2019-06-20

本文共 2899 字,大约阅读时间需要 9 分钟。

介绍

提供了在现有JSP页面之内实现快速内存缓冲的功能,是一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案。
特点:缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存。拥有全面的API–OSCache API给你全面的程序来控制所有的OSCache特性。永久缓存–缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启。支持集群–集群缓存数据能被单个的进行参数配置,不需要修改代码。缓存记录的过期–你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略。

页面添加标签

<%@taglib uri=”http://www.opensymphony.com/oscache” prefix=“oscache”%>
功能
缓存默认存放在application范围,缓存时间默认为3600秒,即1小时.

1)

< oscache:cache>
<%=new Date() %>
< /oscache:cache>
缓存的key将以请求的URI+查询字串组成,
如果你访问/oscache/index.jsp?name=ttt
和/oscache/index.jsp?name=ppp将得到两份缓存。

2)

< oscache:cache key=“name”>
name=${param.name}
< /oscache:cache>
这时候缓存将以name为key,不再是请求的URI+查询字串组成,
所以如果你访问/oscache/index.jsp?name=ttt和/oscache/index.jsp?name=ppp将得到一份缓存。

3)

< oscache:cache key=”name” scope=”session”>
name=${param.name}
< /oscache:cache>
缓存范围设置为session,这时候缓存保存在用户的session中,如果用户的把浏览器关闭,再重新打开一个新浏览器,原来缓存的内容将不存在。

4)

< oscache:cache key=”name” time=”10”>
name=${param.name}
< /oscache:cache>
上面设置了缓存的时间为10秒,超过10秒后,缓存的内容将失掉。

5)

< oscache:cache key=”name” time=”60” refresh=”${param.refresh}”>
name=${param.name}
< /oscache:cache>
refresh为true将会导致缓存的内容过期而被清除,简单地说,该属性为true用于清除缓存

6)

人为管理缓存标签:
< oscache:flush scope=”application” />
清除application范围内的所有缓存
< oscache:flush scope=”session” key=”foobar” />
清除session范围内的key为foobar的缓存。

7)< oscache:flush scope=”application” group=”currencyData” />

清除application范围内组名为currencyData内的所有缓存。

8)

页面全局缓存将使用Filter实现
< 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>*.jsp< /url-pattern>
< /filter-mapping>

缓存的key将以请求的URI+查询字串组成,如果你访问/oscache/index.jsp?name=ttt和/oscache/index.jsp?name=ppp将得到两份缓存。缓存是在初次访问页面时进行的,后续的请求将会返回缓存中的内容。缓存中存放的内容为页面返回给用户的html源代码。

8)

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用于设置持久化类。

项目结构

这里写图片描述

oscache.properties

cache.capacity=1000cache.memory=false//保存硬盘路径cache.path=H:\\java\\cachecache.persistence.class=com.opensymphony.oscache.plugins.diskpersistence.DiskPersistenceListener

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="http://www.opensymphony.com/oscache" prefix="oscache"%>
Insert title here当前时间<%=new Date() %>
缓存时间<%=new Date() %>

缓存测试

1)session

这里写图片描述

这里写图片描述

2)默认appliaction

这里写图片描述
这里写图片描述

3)key

这里写图片描述
这里写图片描述
这里写图片描述

4)time

这里写图片描述
5)保存在硬盘
这里写图片描述
这里写图片描述

转载于:https://www.cnblogs.com/feiZhou/p/9344412.html

你可能感兴趣的文章
home.php
查看>>
neo4j---删除关系和节点
查看>>
redis分布式锁redisson
查看>>
腾讯十年老兵:区块链本质上是一个异地多活的分布式数据库
查看>>
就《在企业中发起和推广DevOps》的问答
查看>>
促进大会上的交流
查看>>
SRE系列教程 | 基于时间序列数据的监控实践
查看>>
WIFI 万能钥匙万玉权:团队之中要有跨三界之外的“闲人”
查看>>
Android -- 加载大图片的方法
查看>>
Blend 3状态为空的解决方法
查看>>
什么样的企业可以称之为初创企业?
查看>>
安全厂商间真的能“数据共享,协同合作”吗
查看>>
那些优秀程序员身上的共同特质
查看>>
Python爬虫之BeautifulSoup
查看>>
《HTML 5与CSS 3权威指南(第3版·下册)》——第20章 使用选择器在页面中插入内容...
查看>>
空中鼠标算法原理讨论
查看>>
UITableView整理
查看>>
Akka笔记之Actor简介
查看>>
Android 使用SystemBarTint设置状态栏颜色
查看>>
GreenPlum vs MonetDB case
查看>>