oscache 頁面級快取例項
阿新 • • 發佈:2018-11-09
快取頁面跟oscache.properties檔案也是有關聯的,需要將oscache.memory設為true
1.快取整個頁面
在OSCache元件中提供了一個CacheFilter用於實現頁面級的快取。主要用於對web應用中的某些動態頁面進行快取,尤其是那些需要生成PDF格式檔案/報表、圖片檔案等的頁面,不僅減少了資料庫的互動、減少資料庫伺服器的壓力,而且對於減少web伺服器的效能消耗有很顯著的效果。
該功能是通過在web.xml中進行配置來決定快取哪一個或者哪一組頁面,而且還可以設定相關快取屬性。
快取指定頁面,配置如下:
- <filter>
- <filter-name>CacheFilter</filter-name>
- <filter-class
- <!-- 設定快取時間 -->
- <init-param>
- <
- <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>
- <!-對頁面 main.jsp 進行快取-->
- <url-pattern>main.jsp</url-pattern>
- <!-對所有jsp頁面內容進行快取
- <url-pattern>*.jsp</url-pattern> -->
- </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- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@ page language="java" import="java.util.*" %>
- <%@ page language="java" import="java.text.*" %>
- <%@ taglib uri="http://www.opensymphony.com/oscache" prefix="cache" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <body>
- <%SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); %>
- <div>
- <cache:cache key="cacheDate" scope="session" time="15">
- <h2>使用快取,讓時間在15秒內不進行更新</h2>
- <div><%
- String cacheTime = sdf.format(new Date());
- out.println(cacheTime);
- %>
- </div>
- </cache:cache>
- </div>
- <hr>
- <div>
- <h2>不使用快取</h2>
- <div><%
- String commonTime = sdf.format(new Date());
- out.println(commonTime);
- %></div>
- </div>
- </body>
- </html>
頁面效果:
參考文章:
1. OSCache頁面快取 http://blog.csdn.net/orclight/article/details/8525896
2.用OSCache進行快取物件 http://blog.csdn.net/zhifeng172/article/details/7608682