用CashFilter實現頁面級緩存。java
在OSCache組件中提供了一個CacheFilter用於實現頁面級的緩存,主要用於對web應用中的某些動態頁面進行緩存,尤爲是那些須要生成pdf格式文件/報表、圖片文件等的頁面,不只減小了數據庫的交互、減小數據庫服務器的壓力,並且對於減小web服務器的性能消耗有很顯著的效果。web
這種功能的實現是經過在web.xml中進行配置來決定緩存哪個或者一組頁面,並且還能夠設置緩存的相關屬性,這種基於配置文件的實現方式對於J2EE來講應該是一種標準的實現方式了。數據庫
[注]只有客戶訪問時返回http頭信息中代碼爲200(也就是訪問已經成功)的頁面信息纔可以被緩存。緩存
1. 緩存單個文件
修改web.xml,增長以下內容,肯定對/testContent.jsp頁面進行緩存。服務器
<filter> <filter-name>CacheFilter</filter-name> <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class> </filter> <filter-mapping> <filter-name>CacheFilter</filter-name> <!-對/testContent.jsp頁面內容進行緩存--> <url-pattern>/testContent.jsp</url-pattern> </filter-mapping>
2. 緩存URL pattern
修改web.xml,增長以下內容,肯定對*.jsp頁面進行緩存。session
<filter> <filter-name>CacheFilter</filter-name> <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class> </filter> <filter-mapping> <filter-name>CacheFilter</filter-name> <!-對全部jsp頁面內容進行緩存--> <url-pattern>*.jsp</url-pattern> </filter-mapping>
3. 本身設定緩存屬性
在頁面級緩存的狀況下,能夠經過設置CacheFilter的初始屬性來決定緩存的一些特性:time屬性設置緩存的時間段,默認爲3600秒,能夠根據本身的須要只有的設置,而scope屬性設置,默認爲application,可選項包括application、sessionapp
<filter> <filter-name>CacheFilter</filter-name> <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class> <init-param> <param-name>time</param-name> <param-value>600</param-value> </init-param> <init-param> <param-name>scope</param-name> <param-value>session</param-value> </init-param> </filter> <filter-mapping> <filter-name>CacheFilter</filter-name> <!-對全部jsp頁面內容進行緩存--> <url-pattern>*.jsp</url-pattern> </filter-mapping>