缓存之EHCache(第三个记录)

6、在页面中使用EHCache缓存

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

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

       毫无疑问,几乎全部的网站的首页都是访问率最高的,而首页上的数据来源又是很是普遍的,大多数来自不一样的对象,并且有可能来自不一样的db ,因此给首页作缓存是一个不错的主意,那么主页的缓存策略是什么样子的呢,我认为应该是某个固定时间以内不变的,好比说2 分钟更新一次。或者根据不一样的网页功能采起合理的策略。app

 在使用ehcache 的页面缓存以前,咱们必需要了解ehcache 的2个概念:jsp

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

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

一、配置ehcache.xml文件spa

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

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

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

< filter >
        < filter-name > indexCacheFilter </filter-name >
        < filter-class >
            net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter
        </filter-class >
</filter >  
< filter-mapping >
        < filter-name > indexCacheFilter </filter-name >
        < url-pattern > *index.action </url-pattern >
</filter-mapping >

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

< filter >
        < filter-name > indexCacheFilter </filter-name >
        < filter-class >
            net.sf.ehcache.constructs.web.filter.SimplePageFragmentCachingFilter
        </filter-class >
</filter >  
< filter-mapping >
        < filter-name > indexCacheFilter </filter-name >
        < url-pattern > */index_right.jsp </url-pattern >
</filter-mapping >

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

相关文章
相关标签/搜索