?
OSCache簡介
?
OSCache是OpenSymphony這個開源項目眾多Projects中的一個。他是一個高效的J2EE緩存框架,能夠很好的解決動態(tài)網(wǎng)站速度的問題。下面來
看下OSCache解決了動態(tài)網(wǎng)站的哪些令人郁悶的問題。
1.緩存動態(tài)內(nèi)容:其實我們的動態(tài)網(wǎng)頁上一般只有一部分是動態(tài)的(表頭,表尾一般是不變的),如果我們緩存整個網(wǎng)頁顯然不成,因為有部分是
隨著請求有可能變的。OSCache提供的方式是允許我們只緩存一部分網(wǎng)頁。
2.緩存2進制內(nèi)容:產(chǎn)生的圖片和PDF文件在服務(wù)器加載的時候非常的耗時。OSCache解決這個問題是通過一個Servlet2.3的緩存過濾功能,然后能
夠緩存任意的URI(比如一個完整的頁面或者是一個產(chǎn)生的圖片/PDF文件)
3.容錯:有這種情況或許我們會遇到,就是當(dāng)一個動態(tài)的網(wǎng)頁出現(xiàn)錯誤。即便我們的頁面有95%都加載完畢,但就是由于這個錯誤,整個頁面就會
返回錯誤的提示或頁面。OSCache允許我們提供出現(xiàn)錯誤時的緩存內(nèi)容,如果出現(xiàn)就適時的提示出來了。
除了上面的這些Servlet的特征外,OSCache完全可以充當(dāng)任何一個java程序的緩存方案。OSCache 的一般特征如下:
1.緩存任意對象:可以不受限制的緩存JSP的一部分或是Http請求,任何的Java對象都可以被緩存。
2.全面的API:通過API可以完完全全的控制OSCache的任何特性。
3.持久緩存:我們可以把認為重要的數(shù)據(jù)緩存到硬盤上。
4.支持集群:集群緩存數(shù)據(jù)能被單個的進行參數(shù)配置,不需要修改代碼。
5.緩存記錄的過期:你可以有最大限度的控制緩存對象的過期,包括可插入式的刷新策略(如果默認性能不需要時)。
?
?
實例1:
?
我們現(xiàn)在的程序是這樣的:
程序的靜態(tài)內(nèi)容和表單都是html
動態(tài)的內(nèi)容都是一個servlet和一個jsp文件,servlet準備數(shù)據(jù)放到request里然后forward到j(luò)sp
jsp唯一功能就是顯示request里面的數(shù)據(jù)。
現(xiàn)在的問題是有些頁面訪問數(shù)據(jù)庫量大或者頻繁想做一個cache.
我沒用過oscache,在網(wǎng)上看了一下基本介紹的都是在jsp文件中加入如下形式的代碼
- <cache:cache?key= "products" ?scope= "session" > ??
- ?????????some?jsp?content? ??
- </cache:cache>??
<cache:cache key="products" scope="session"> some jsp content </cache:cache>
可是我的動態(tài)內(nèi)容都是在servlet里面訪問的數(shù)據(jù)庫,對于動態(tài)內(nèi)容用戶只能訪問servlet不能直接訪問jsp
這樣的話用戶訪問servlet還是要查數(shù)據(jù)庫阿,
想我這種情況該怎么做呢??
?
解決方案:
1.已經(jīng)找到解決辦法 CacheFilter 正好滿足我的要求
我就是想把產(chǎn)品列表緩存 弄個filter把那個servlet緩存到application就OK了
正好滿足我的要求,我把緩存時間設(shè)置成了1小時
后臺加入一個產(chǎn)品前臺雖然不能立即看到 不過不礙事,增加產(chǎn)品的可能性很小,也不要求時時看到
基本開始的時候就都錄入完畢了
2.如果要在首頁緩存一個產(chǎn)品列表區(qū)塊,可以這樣子:)
- <cache:cache?key= "products" ?scope= "session" >? ??
- <jsp:include?page= "product_list.do" /> ??
- </cache:cache>??
?
?
參考資料:
http://blog.csdn.net/foxcai/articles/1232293.aspx
?
http://zhangxinjie.blog.ccidnet.com/blog-htm-itemid-724397-uid-20630-do-showone-type-blog.html
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
