OSCache入门教程

来源:互联网 发布:java将毫秒数转为日期 编辑:程序博客网 时间:2024/06/09 19:00

    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的用法,以后我会在继续添加,请继续关注我的博客!

原创粉丝点击