1. 程式人生 > >oscache 頁面級快取例項

oscache 頁面級快取例項

快取頁面跟oscache.properties檔案也是有關聯的,需要將oscache.memory設為true


1.快取整個頁面

    在OSCache元件中提供了一個CacheFilter用於實現頁面級的快取。主要用於對web應用中的某些動態頁面進行快取,尤其是那些需要生成PDF格式檔案/報表、圖片檔案等的頁面,不僅減少了資料庫的互動、減少資料庫伺服器的壓力,而且對於減少web伺服器的效能消耗有很顯著的效果。

   該功能是通過在web.xml中進行配置來決定快取哪一個或者哪一組頁面,而且還可以設定相關快取屬性。

快取指定頁面,配置如下:

    

[html]  view plain copy
  1. <filter>     
  2.     <filter-name>CacheFilter</filter-name>     
  3.     <filter-class
    >com.opensymphony.oscache.web.filter.CacheFilter</filter-class>      
  4.     <!-- 設定快取時間 -->  
  5.     <init-param>      
  6.         <
    param-name>time</param-name>     
  7.         <param-value>600</param-value>     
  8.     </init-param>      
  9.     <!-- 設定作用範圍 -->  
  10.     <init-param>       
  11.        <param-name>scope</param-name>      
  12.        <param-value>session</param-value>     
  13.     </init-param>      
  14. </filter>       
  15. <filter-mapping>       
  16.     <filter-name>CacheFilter</filter-name>  
  17.     <!-對頁面 main.jsp 進行快取-->       
  18.     <url-pattern>main.jsp</url-pattern>   
  19.     <!-對所有jsp頁面內容進行快取       
  20.     <url-pattern>*.jsp</url-pattern>  -->      
  21. </filter-mapping>  
備註:

1.在頁面級快取的情況下,可以通過設定CacheFilter的初始屬性來決定快取的一些特性:time屬性設定快取的時間段,預設為3600秒,可以根據自己的需要只有的設定,而scope屬性設定,預設為application,可選項包括application、session。

2.只有客戶訪問時返回http頭資訊中程式碼為200(也就是訪問已經成功)的頁面資訊才能夠被快取。

3.配置裡配置的main.jsp, 訪問時必須訪問的也是main.jsp才能快取,可以配置為.do  .action之類,不侷限於jsp


2.快取區域性頁面

    使用OScache標籤,用標籤把指定的內容給包含起來。在標籤中可以設定快取的屬性。 用OSCache區域性快取,儲存頁面中的內容: [plain]  view plain copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <%@ page language="java" import="java.util.*" %>  
  4. <%@ page language="java" import="java.text.*" %>         
  5. <%@ taglib uri="http://www.opensymphony.com/oscache" prefix="cache" %>      
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  7. <html>  
  8. <head>  
  9. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  10. <title>Insert title here</title>  
  11. </head>  
  12. <body>  
  13.     <%SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); %>  
  14.     <div>  
  15.         <cache:cache key="cacheDate" scope="session" time="15">   
  16.             <h2>使用快取,讓時間在15秒內不進行更新</h2>  
  17.             <div><%  
  18.                 String cacheTime = sdf.format(new Date());  
  19.                 out.println(cacheTime);               
  20.                 %>  
  21.             </div>  
  22.         </cache:cache>  
  23.     </div>  
  24.     <hr>  
  25.     <div>  
  26.         <h2>不使用快取</h2>  
  27.         <div><%  
  28.             String commonTime = sdf.format(new Date());  
  29.             out.println(commonTime);  
  30.          %></div>  
  31.     </div>  
  32. </body>  
  33. </html>  

頁面效果:

    參考文章:

1. OSCache頁面快取  http://blog.csdn.net/orclight/article/details/8525896

2.用OSCache進行快取物件    http://blog.csdn.net/zhifeng172/article/details/7608682