1. 程式人生 > >Java喬曉鬆-使用Filter過濾器清除網頁快取

Java喬曉鬆-使用Filter過濾器清除網頁快取

package www.csdn.dbshop.filter;


import java.io.IOException;


import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;


public class CacheFilter implements Filter {


	public void destroy() {
		System.out.println("快取Filter------銷燬操作");


	}


	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		System.out.println("清除快取................");
		//response物件
		HttpServletResponse res = (HttpServletResponse) response;
		// 設定網頁的到期時間,一旦過期則必須到伺服器上重新呼叫
		res.setDateHeader("Expires", -1);
		// Cache-Control 指定請求和響應應遵循的快取機制 no-cache指示請求或響應訊息是不能快取的
		res.setHeader("Cache-Control", "no-cache");
		// 用於設定禁止瀏覽器從本地快取中呼叫頁面內容,設定後一旦離開頁面就無法從Cache中再調出
		res.setHeader("Pragma", "no-cache");
		// 放行
		chain.doFilter(request, res);


	}


	public void init(FilterConfig filterConfig) throws ServletException {
		System.out.println("初始化資料-----快取清除");


	}


}