分享

OSCache做页面级缓存

 KILLKISS 2009-12-28

用oscache做url地址页面一级的缓存,可以大大减少应用对数据库的访问,提高响应的效率,要想将oscache应用到程序中是非常方便的,只要配置一下webapps目录下的web.xml,值得注意的是OSCache的filter应该放在struts或webwork 的Action的前面,这样用户触发一个url地址就不会经过框架语言,才会起到完全缓存的效果,比如我用的是webwork框架,在web.xml中的配置如下:

<filter>
  <filter-name>Set Character Encoding</filter-name>
  <filter-class>
   xwap.common.filter.SetCharacterEncodingFilter
  </filter-class>
  <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
  </init-param>
 </filter>
 
 <filter-mapping>
  <filter-name>Set Character Encoding</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 

 <filter>
    <filter-name>osCache</filter-name>
  <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>
  <init-param>
          <param-name>time</param-name>
          <param-value>3600</param-value>
       </init-param>
       <init-param>
          <param-name>scope</param-name>
          <param-value>application</param-value>
       </init-param>
 </filter>
 
 <filter-mapping>
  <filter-name>osCache</filter-name>
  <url-pattern>/query/defaultQuery.action</url-pattern>
 </filter-mapping>
 
 <filter>
  <filter-name>webwork</filter-name>
  <filter-class>
   com.opensymphony.webwork.dispatcher.FilterDispatcher
  </filter-class>
 </filter>
 
 <filter-mapping>
  <filter-name>webwork</filter-name>
  <url-pattern>*.action</url-pattern>
 </filter-mapping>
  需要注意的是:

1.在tomcat下来进行配置时,<url-pattern>/query/defaultQuery.action</url-pattern>中不支持" * ",而在resin就可以这样来写,<url-pattern>/query/ *.action</url-pattern>

2.如果你的lib包下有两个版本的oscache,那么在页面上,用到缓存的页面会出现乱码,把其中一个版本删除掉就可以了.

3.如果在web.xml中用到了taglib

<taglib>
  <taglib-uri>oscache</taglib-uri>
  <taglib-location>/WEB-INF/lib/oscache-2.3.2.jar</taglib-location>
 </taglib>

要确保这个包的名称正确,不然会抛出TldLocationCache错误

如果还有不明白的地方,可以参考OSCache的官方网站: OSCache - OSCache

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约