oscache是當前運用最廣的快取方案,jboss,hibernate,spring等都對其有支援,下面簡單介紹一下oscache的配置和使用過程。
1.安裝過程
從解壓縮目錄取得oscache.jar 檔案放到 /web-inf/lib 或相應類庫目錄 目錄中,
jar檔名可能含有版本號和該版本的發布日期資訊等,如oscache-2.0.2-22jan04.jar
如果你的jdk版本為1.3.x,建議在lib中加入apache common lib 的commons-collections.jar包。
如jdk是1.4以上則不必
從src或etc目錄取得oscache.properties 檔案,放入src根目錄或發布環境的/web-inf/classes 目錄
如你需要建立磁碟快取,須修改oscache.properties 中的cache.path資訊 (去掉前面的#注釋)。
拷貝oscache標籤庫檔案oscache.tld到/web-inf/classes目錄。
現在你的應用目錄類似如下:
將下列**加入web.xml檔案中
程式**:
oscache
/web-inf/classes/oscache.tld
為了便於除錯日誌輸出,須加入commons-logging.jar和log4j-1.2.8.jar到當前類庫路徑中
在src目錄加入下面兩個日誌輸出配置檔案:
log4j.properties 檔案內容為:
程式**:
log4j.rootlogger=debug,stdout,file
log4j.logger.org.apache.commons=error
log4j.logger.com.opensymphony.oscache.base=info
commons-logging.properties 檔案內容為
org.apache.commons.logging.log=org.apache.commons.logging.impl.log4jcategorylog
2.oscache.properties 檔案配置嚮導
cache.memory
值為true 或 false ,預設為在記憶體中作快取,
如設定為false,那cache只能快取到資料庫或硬碟中,那cache還有什麼意義:)
cache.capacity
快取元素個數
cache.persistence.class
持久化快取類,如此類開啟,則必須設定cache.path資訊
cache.cluster 相關
為集群設定資訊。
如 cache.cluster.multicast.ip為廣播ip位址
cache.cluster.properties為集群屬性
3.oscache的基本用法
cache1.jsp 內容如下
程式**:
沒有快取的日期:
每30秒重新整理快取一次的日期:
手動重新整理快取的日期:
手動重新整理
cache2.jsp 執行手動重新整理頁面如下
< %@ taglib uri="oscache" prefix="cache" % >
快取已重新整理... 返回
程式**:
...
4. 快取過濾器 cachefilter
你可以在web.xml中定義快取過濾器,定義特定資源的快取。
程式**:
cachefilter
com.opensymphony.oscache.web.filter.cachefilter
time
60 scope
session
cachefilter
*.jsp
上面定義將快取所有.jsp頁面,快取重新整理時間為60秒,快取作用域為session
注意,cachefilter只捕獲http頭為200的頁面請求,即只對無錯誤請求作快取,
而不對其他請求(如500,404,400)作快取處理。
OSCache 快取運用
對於一些 型別的專案.我們可以採取的方案就是減少和資料庫方面的交換.這樣我們可以使用快取.由於專案使用hibernate已經使用了ehcache的2級快取.這裡可以在web層上使用oscache來進行快取 需要的jar包有 oscache.jar和lib commons logging.jar 開發...
OSCache 快取標籤
是oscache提供的標籤庫中最重要的乙個標籤,包括在標籤中的內容將應用快取機制進行處理,處理的方式將取決於程式設計者對cache標籤屬性的設定。1.快取時間超過了cache標籤設定的time或者duration屬性規定的超時時間 2.cron屬性規定的時間比快取資訊的開始時間更晚 3.標籤中快取的...
OSCache快取過濾器
用cashfilter實現頁面級快取。在oscache元件中提供了乙個cachefilter用於實現頁面級的快取,主要用於對web應用中的某些動態頁面進行快取,尤其是那些需要生成pdf格式檔案 報表 檔案等的頁面,不僅減少了資料庫的互動 減少資料庫伺服器的壓力,而且對於減少web伺服器的效能消耗有很...