缓存之EHCache(二)

转载地址已无处可查难过

六、在页面中使用EHCache缓存

       简单的来说,如果一个应用中80% 的时间内都在访问20% 的数据,那么,这时候就应该使用缓存了。

       在80/20 原则生效的地方,我们都应该考虑是否可以使用缓存。但即使是这样,缓存也有不同的用法,举个例子,一个网站的首页估计是被访问的次数最多的,我们可以考虑给首页做一个页面缓存。页面访问最频繁的,做缓存。不同的页面的缓存策略有可能有天壤之别。

       毫无疑问,几乎所有的网站的首页都是访问率最高的,而首页上的数据来源又是非常广泛的,大多数来自不同的对象,而且有可能来自不同的db ,所以给首页做缓存是一个不错的主意,那么主页的缓存策略是什么样子的呢,我认为应该是某个固定时间之内不变的,比如说2 分钟更新一次。或者根据不同的网页功能采取合理的策略。

 在使用ehcache 的页面缓存之前,我们必须要了解ehcache 的2个概念:

(1)timeToIdleSeconds ,多长时间不访问该缓存,那么ehcache 就会清除该缓存。

(2)timeToLiveSeconds ,缓存的存活时间,从开始创建的时间算起。

1、配置ehcache.xml文件

2、在web.xml配置文件中配置过滤器信息

    好了,缓存整个页面看上去是非常的简单,甚至都不需要写一行代码,只需要几行配置就行了,够简单吧,虽然看上去简单,但是事实上内部实现却不简单哦,有兴趣的话,大家可以看看SimplePageCachingFilter 继承体系的源代码。

缓存首页(整个页面)示例:

01< filter >
02        < filter-name > indexCacheFilter </filter-name >
03        < filter-class >
04            net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter
05        </filter-class >
06</filter >  
07< filter-mapping >
08        < filter-name > indexCacheFilter </filter-name >
09        < url-pattern > *index.action </url-pattern >
10</filter-mapping >

 缓存首页的部分内容时,需要使用SimplePageFragmentCachingFilter 这个filter 。如:  

01< filter >
02        < filter-name > indexCacheFilter </filter-name >
03        < filter-class >
04            net.sf.ehcache.constructs.web.filter.SimplePageFragmentCachingFilter
05        </filter-class >
06</filter >  
07< filter-mapping >
08        < filter-name > indexCacheFilter </filter-name >
09        < url-pattern > */index_right.jsp </url-pattern >
10</filter-mapping >

 这个jsp 需要被jsp:include 到其他页面,这样就做到的局部页面的缓存。这一点貌似没有oscache 的tag 好用。

0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值