1.緩存整個頁面
在OSCache組件中提供了一個CacheFilter用於實現頁面級的緩存。主要用於對web應用中的某些動態頁面進行緩存,尤其是那些需要生成PDF格式文件/報表、圖片文件等的頁面,不僅減少了數據庫的交互、減少數據庫服務器的壓力,而且對於減少web服務器的性能消耗有很顯著的效果。
該功能是通過在web.xml中進行配置來決定緩存哪一個或者哪一組頁面,而且還可以設置相關緩存屬性。
緩存指定頁面,配置如下:
<filter>
<filter-name>CacheFilter</filter-name>
<filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>
<!-- 設置緩存時間 -->
<init-param>
<param-name>time</param-name>
<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(也就是訪問已經成功)的頁面信息才能夠被緩存。
2.緩存局部頁面
<%@ 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