用oscache做url地址頁面一級的緩存,可以大大減少應用對數(shù)據(jù)庫的訪問,提高響應的效率,要想將oscache應用到程序中是非常方便的,只要配置一下webapps目錄下的web.xml,值得注意的是OSCache的filter應該放在struts或webwork 的Action的前面,這樣用戶觸發(fā)一個url地址就不會經(jīng)過框架語言,才會起到完全緩存的效果,比如我用的是webwork框架,在web.xml中的配置如下:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>
xwap.common.filter.SetCharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>osCache</filter-name>
<filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>
<init-param>
<param-name>time</param-name>
<param-value>3600</param-value>
</init-param>
<init-param>
<param-name>scope</param-name>
<param-value>application</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>osCache</filter-name>
<url-pattern>/query/defaultQuery.action</url-pattern>
</filter-mapping>
<filter>
<filter-name>webwork</filter-name>
<filter-class>
com.opensymphony.webwork.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>webwork</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
需要注意的是:
1.在tomcat下來進行配置時,<url-pattern>/query/defaultQuery.action</url-pattern>中不支持" * ",而在resin就可以這樣來寫,<url-pattern>/query/ *.action</url-pattern>
2.如果你的lib包下有兩個版本的oscache,那么在頁面上,用到緩存的頁面會出現(xiàn)亂碼,把其中一個版本刪除掉就可以了.
3.如果在web.xml中用到了taglib
<taglib>
<taglib-uri>oscache</taglib-uri>
<taglib-location>/WEB-INF/lib/oscache-2.3.2.jar</taglib-location>
</taglib>
要確保這個包的名稱正確,不然會拋出TldLocationCache錯誤
如果還有不明白的地方,可以參考OSCache的官方網(wǎng)站: OSCache - OSCache