<% @ taglib uri = " oscache " prefix = " cache " %>
< cache:flush group = " device_types " scope = " application " />
但是有时需要在java代码中刷新缓存,以下这个OSCacheUtil类可以工作,但是只能在webwork环境内调用:
import javax.servlet.jsp.PageContext;
import org.apache.log4j.Logger;
import com.opensymphony.oscache.base.Cache;
import com.opensymphony.oscache.web.ServletCacheAdministrator;
import com.opensymphony.webwork.ServletActionContext;
/**
* osCache缓存工具类.
* 只能在webwork环境内调用
*
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: </p>
* @author 杨杰荣
* @version 1.0
*/
public class OSCacheUtil
{
private static final Logger log = Logger.getLogger( OSCacheUtil.class );
public static final int ALL_SCOPE = 0;
public static final int SESSION_SCOPE = PageContext.SESSION_SCOPE;
public static final int APPLICATION_SCOPE = PageContext.APPLICATION_SCOPE;
private static ServletCacheAdministrator admin = null;
private OSCacheUtil()
{
}
/**
* 刷新osCache组
* @param group Cache组名
* @param cacheScope Cache范围,只能是SESSION_SCOPE或APPLICATION_SCOPE
*/
public static void flushGroup( String group, int cacheScope )
{
initCacheAdmin();
if ( cacheScope == SESSION_SCOPE || cacheScope == APPLICATION_SCOPE )
{
Cache cache = admin.getCache( ServletActionContext.getRequest(),
cacheScope );
cache.flushGroup( group );
}
else
{
log.warn( "A cache group was specified for flushing, but the scope wasn't supplied or was invalid" );
}
}
/**
* 刷新osCache中的某个key'
* @param key String
* @param cacheScope Cache范围,只能是SESSION_SCOPE或APPLICATION_SCOPE
*/
public static void flushKey( String key, int cacheScope )
{
initCacheAdmin();
if ( cacheScope == SESSION_SCOPE || cacheScope == APPLICATION_SCOPE )
{
String actualKey = admin.generateEntryKey(
key, ServletActionContext.getRequest(), cacheScope, null );
Cache cache = admin.getCache( ServletActionContext.getRequest(), cacheScope );
cache.flushEntry( actualKey );
}
else
{
log.warn( "A cache key was specified for flushing, but the scope wasn't supplied or was invalid" );
}
}
/**
* 刷新所有的osCache
* @param cacheScope Cache范围,可以是SESSION_SCOPE,APPLICATION_SCOPE,ALL_SCOPE
*/
public static void flushAll( int cacheScope )
{
initCacheAdmin();
if ( cacheScope == SESSION_SCOPE || cacheScope == APPLICATION_SCOPE )
{
admin.setFlushTime( cacheScope );
}
else
{
admin.flushAll();
}
}
private static void initCacheAdmin()
{
if ( admin == null )
{
admin = ServletCacheAdministrator.getInstance( ServletActionContext.
getServletContext() );
}
}
官网http://www.opensymphony.com/oscache/api/
import org.apache.log4j.Logger;
import com.opensymphony.oscache.base.Cache;
import com.opensymphony.oscache.web.ServletCacheAdministrator;
import com.opensymphony.webwork.ServletActionContext;
/**
* osCache缓存工具类.
* 只能在webwork环境内调用
*
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: </p>
* @author 杨杰荣
* @version 1.0
*/
public class OSCacheUtil
{
private static final Logger log = Logger.getLogger( OSCacheUtil.class );
public static final int ALL_SCOPE = 0;
public static final int SESSION_SCOPE = PageContext.SESSION_SCOPE;
public static final int APPLICATION_SCOPE = PageContext.APPLICATION_SCOPE;
private static ServletCacheAdministrator admin = null;
private OSCacheUtil()
{
}
/**
* 刷新osCache组
* @param group Cache组名
* @param cacheScope Cache范围,只能是SESSION_SCOPE或APPLICATION_SCOPE
*/
public static void flushGroup( String group, int cacheScope )
{
initCacheAdmin();
if ( cacheScope == SESSION_SCOPE || cacheScope == APPLICATION_SCOPE )
{
Cache cache = admin.getCache( ServletActionContext.getRequest(),
cacheScope );
cache.flushGroup( group );
}
else
{
log.warn( "A cache group was specified for flushing, but the scope wasn't supplied or was invalid" );
}
}
/**
* 刷新osCache中的某个key'
* @param key String
* @param cacheScope Cache范围,只能是SESSION_SCOPE或APPLICATION_SCOPE
*/
public static void flushKey( String key, int cacheScope )
{
initCacheAdmin();
if ( cacheScope == SESSION_SCOPE || cacheScope == APPLICATION_SCOPE )
{
String actualKey = admin.generateEntryKey(
key, ServletActionContext.getRequest(), cacheScope, null );
Cache cache = admin.getCache( ServletActionContext.getRequest(), cacheScope );
cache.flushEntry( actualKey );
}
else
{
log.warn( "A cache key was specified for flushing, but the scope wasn't supplied or was invalid" );
}
}
/**
* 刷新所有的osCache
* @param cacheScope Cache范围,可以是SESSION_SCOPE,APPLICATION_SCOPE,ALL_SCOPE
*/
public static void flushAll( int cacheScope )
{
initCacheAdmin();
if ( cacheScope == SESSION_SCOPE || cacheScope == APPLICATION_SCOPE )
{
admin.setFlushTime( cacheScope );
}
else
{
admin.flushAll();
}
}
private static void initCacheAdmin()
{
if ( admin == null )
{
admin = ServletCacheAdministrator.getInstance( ServletActionContext.
getServletContext() );
}
}
官网http://www.opensymphony.com/oscache/api/
相关推荐
具体使用请参考:https://blog.csdn.net/w13240362354/article/details/51934056/
oscache-2.1.jar oscache-2.1.jar
OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决...
javaweb做页面缓存常用,OSCache是一个工业级的J2EE缓存实现。OSCache不但能缓存java对象,还可以缓存页面,http请求和二进制内容,例如pdf文件等。通过应用OSCache,我们不但可以实现通常的Cache功能,还能够改善...
oscache缓存技术入门实例
1、OSCache是什么? 2、OSCache的特点 3、有关“用OSCache进行缓存对象”的研究
OSCache学习例子 实例 很好的与j2ee结合
OSCache标记库由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的...
OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存...
使用oscache进行缓存,大大提高web系统运行效率
Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的...OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存解决方案。。。。
OSCache是OpenSymphony这个开源项目众多Projects中的一个。他是一个高效的J2EE缓存框架,能够很好的解决动态网站速度的问题。
oscache.tld,oscahe.properties,oscache-2.1.jar,commons
oscache-java缓存框架插件和安装教程,使用教程一步到位
oscache-2.4.1.jar资源包,用于java缓存、jsp页面缓存
oscache的简单介绍
oscache的使用
本文叙述了如何使用oscanche,最后的配置需要在oscache.properties中完成
oscache-2.2jar包
oscache-2.3.jar