OSCache是一个开放式资源缓冲库,可从
http://www.opensymphony.com/oscache免费下载。它包括一组JSP的标签,通过它们可以很容易的在你的程序中实现页面缓存,同时,还可以使用它的过滤器,可缓冲的不仅仅是JSP页面,还可以缓存任何Servlet生成的内容。
下面先介绍一下它的一些术语:
缓冲记录:存储在页面缓存器内的对象称为一个缓冲记录。在一个JSP程序中,它通常是一个JSP页面、JSP页面的一部分或Servlet的输出。
缓冲键码:它就像一个哈西表(Hash Table)。当在页面缓存中存储缓冲记录时,你必须提供缓冲键码来识别各个条目。在一个JSP程序中,你可能需要把几个请求参数组合在一起来形成缓冲键码,或者使用页面请求URI作为缓冲键码。
缓冲周期:是一个缓冲记录在保留在页面缓存器中的时间。对于一个显示数据时常更新的JSP页面,你应该设定一个短的缓冲周期。
缓冲域:是缓冲被存储在的作用域。你可以在应用程序域内存储缓冲记录,这样,缓冲记录可以被所有用户分享;或者在会话域,在前用户基础上存储缓冲记录。
安装OSCache
解压下载下来的文件包,将oscache.jar放到lib目录下,将oscache.properties和oscache.tld放到WEB-INF/classes下。在web.xml中加入标签库的配置:
<taglib>
<taglib-uri>oscache</taglib-uri>
<taglib-location>/WEB-INF/classes/oscache.tld</taglib-location>
</taglib>
oscache.properties文件是它的配置,如果你像将缓存文件存放在硬盘上,并使用windows,在指定目录上需要使用\\。比如你的目录是c:\cache,那么应该写上c:\\cache。
OSCache JSP标签
使用这些标签很简单。你要做的是在需要缓存的JSP页面部分防止<os:cache>标签。以下JSP页面的示例表明了其实现方法:
<!--导入标签库-->
<%@ taglib uri="/WEB-INF/oscache.tld" prefix="os" %>
<!--开始使用-->
<os:cache time="60">
<!--这里是你要缓存的JSP代码-->
<os:cache>
怎么样很简单吧,你只需把你要缓存的代码用<os:cache>标签包围起来即可,这里缓存周期是60秒,你可以根据你的具体情况来修改。在这个例子中,我们没有指定一个缓冲键码,默认情况下,OSCache将使用请求URI作为缓冲记录的键码。也没有指定一个缓冲域,默认情况下将会使用应用程序域。
OSCacheServlet过滤器
我们现在可以用它的过滤器来缓冲Servlet的输出,通过使用com.opensymphony.module.oscache.web.filter.CacheFilter类来实现。现在你需要做的是在程序的web.xml中添加这个过滤器,以及为所有你希望缓存的URL样式添加过滤器映射。以下是web.xml文件,我们只给出需要的部分:
<filter>
<filter-name>CacheFilter</filter-name>
<filter-class>com.opensymphony.module.oscache.web.filter.CacheFilter</filter-class>
<init-param>
<param-name>time</param-name>
<param-value>60</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<uri-pattern>/servlets/*</url-pattern>
</filter-mapping>
过滤器元素应该在上下文参数之后,但在Servlet和监听器元素之前。
如同前面JSP的例子一样,我们同样设置了缓冲时间为60秒。其他的参数,如缓冲键码和缓冲域被省略,使用默认值。<filter-mapping>元素配置CacheFilter,以便它为匹配样式/servlets/*的所有请求URL缓冲相应输出。
这篇教程只是简单的介绍一下OSCache的用法
分享到:
相关推荐
**OSCache基础** 1. **OSCache简介**:OSCache是一个强大的内存对象缓存系统,它支持多种缓存策略,如LRU(Least Recently Used)和FIFO(First In First Out),并提供序列化、反序列化以及缓存同步等功能。 2. *...
这是部署Oscache框架的基础。 2. **引入Oscache库**:将Oscache相关的三个JAR文件添加到项目的`WEB-INF/lib`目录下。这些库是Oscache正常运行的必要组件。 3. **配置TLD文件**:将`oscache.tld`文件放置于`WEB-INF...
### oscache文档知识点详解 #### 一、OSCache概述及特点 **OSCache**是由**OpenSymphony**设计的一种创新的JSP自定义标签库,主要用于实现现有JSP页面内部的快速内存缓存功能。作为一种广泛应用且高性能的J2EE缓存...
1. **基础数据**:如配置信息、常量表等,这些数据相对稳定,更改频率较低,适合缓存。 2. **统计报表**:生成报表通常涉及大量计算和数据库查询,缓存报表结果可以显著提升性能。 3. **热门内容**:对于网站上的...
学习Oscache不仅有助于提升应用性能,也有助于理解缓存原理,为后续接触其他缓存技术,如Ehcache、Redis等奠定基础。通过阅读Oscache的源码,开发者还能学习到如何在Java中实现高效、线程安全的数据结构和算法。 总...
### 应用OSCache提升J2EE系统运行性能 #### Cache技术概述 缓存(Cache)作为一种提升系统响应速度及改善整体性能的关键技术,在Web应用领域尤为重要。通过存储页面输出结果或其他频繁访问的数据,可以显著减少对...
1. 基础数据的变更,例如电子商务中的送货区域信息,虽然短期内不会变化,但长期来看可能会增加或减少。 2. 统计报表,这类信息通常周期性更新,如半月报、月报,生成时需要消耗大量系统资源。 这两类问题的共同点...
周期无法控制可以采用SoftReference,WeakReference,PhantomReference这三种对象来执行(看了Ibatis的缓存机制才发现JDK居然还提供了PhantomReference这玩意儿,得恶补基础啊),这三种都是弱引用,区别在于强度...
JavaGroups—构建分布式通信的基础(上) JavaGroups 是一种可靠组通信工具,在同一个台主机、局域网甚至是广域网中,组成员可以加入一个组,发送消息给其它的组成员并从其它成员中接收消息,系统跟踪所有组成员...
综上所述,这个压缩包提供的资料全面覆盖了Hibernate缓存的各个方面,从基础理论到实践应用,再到与其他缓存工具和高并发架构的结合。通过学习这些文档,开发者可以深入理解Hibernate缓存的工作原理,并掌握如何在...
### 自整理Java关于基础和框架的面试题 #### 基础知识点 ##### JDK常用的包 - **java.lang**: 包含所有基本类,如`String`、`Math`等。 - **java.util**: 提供集合框架、日期/时间设施、事件模型、杂项实用程序类...
首先,Spring作为基础的依赖注入(IoC)容器,负责管理应用中的对象和它们的依赖关系。SpringMVC是Spring框架的一部分,用于构建Web应用程序,它通过模型-视图-控制器(MVC)架构模式来处理请求和响应。MyBatis则是...
ShiftOne Object Cache提供了一种基础的Java对象缓存机制,实现包括FIFO、LRU和LFU在内的多种缓存策略,允许开发者调整最大元素数量和生存时间。 WhirlyCache是一个内存对象缓存,强调速度和可配置性,旨在通过缓存...
本文对 Java 面试题进行了回顾,涵盖了 Java 语言基础、Web 开发、数据库、缓存、JavaScript 和 Linux 等多方面的内容,旨在帮助读者备战 Java 面试。 Java 语言基础 1. Java 中的 try-catch-finally 语句执行顺序...
`javaee.jar`是构建企业级应用的基础,`jstl.jar`则让JSP页面更加整洁高效,而`oscache.jar`则是优化性能的关键工具。理解并掌握它们的功能和用法,对于提升Java Web开发技能至关重要。在实际项目中,开发者往往需要...
AppFuse是一个集成了众多当前最流行开源框架与工具(包括Hibernate、ibatis、Struts、Spring、DBUnit、Maven、Log4J、Struts Menu、Xdoclet、SiteMesh、OSCache、JUnit、JSTL等(现在还有lucene的,无敌了))于一身的...
例如OSCache以及JBossTreeCache都是用的是JGroup。 JGroup功能十分强大,通过配置各种参数就可以充分利用它所提供的各项功能。JGroup最大的特点就是支持协议栈的可配置性,它本是实现了基本的Java的协议栈实现,也...
- **OSCache**:不支持分布式环境下的缓存共享。 - **EHCache**:同样不支持分布式环境下的缓存共享。 - **Redis**:支持分布式缓存,适用于需要在多台服务器之间共享缓存的情况。 - **MemoryCache**:支持分布式...