緩存之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 好用。

相關文章
相關標籤/搜索