HTML頁面實現全方位頁面緩存

【1】服務端配置一個Filter,實現對js、css和image的緩存

package cn.com.system.filter;

import java.io.IOException;
import java.util.Enumeration;

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 CacheForWeekFilter {

	private FilterConfig fc;

	public void doFilter(ServletRequest req, ServletResponse res,
			FilterChain chain) throws IOException, ServletException {
		HttpServletResponse response = (HttpServletResponse) res;
		for (Enumeration e = fc.getInitParameterNames(); e.hasMoreElements();) {
			String headerName = (String) e.nextElement();
			response.addHeader(headerName, fc.getInitParameter(headerName));
		}
		chain.doFilter(req, response);
	}

	public void init(FilterConfig filterConfig) {
		this.fc = filterConfig;
	}

	public void destroy() {
		this.fc = null;
	}
}

web.xml配置

<filter>  
        <filter-name>CacheForWeek</filter-name>  
        <filter-class>cn.com.system.filter.CacheForWeekFilter</filter-class>  
        <init-param>  
            <param-name>Cache-Control</param-name>  
            <param-value>max-age=604800, public</param-value>  
        </init-param>  
    </filter>  
   <filter-mapping>  
        <filter-name>CacheForWeek</filter-name>  
        <url-pattern>/js/</url-pattern>  
    </filter-mapping>  
    <filter-mapping>  
        <filter-name>CacheForWeek</filter-name>  
        <url-pattern>/images/</url-pattern>  
    </filter-mapping>  
    <filter-mapping>  
        <filter-name>CacheForWeek</filter-name>  
        <url-pattern>/css/</url-pattern>  
    </filter-mapping> 
完成這一步,在服務端已經實現了對頁面的緩存,但是當前情況下頁面還是會每次訪問服務器的,只是壓力減小了

如何讓頁面在一段時間內不訪問服務器呢

實現方式是對應公用的JS都放到一個頁面中,別的頁面包含他,在這個頁面中增加頁面緩存

<%@ page language="java" pageEncoding="UTF-8"%>
<meta charset="utf-8" />
<span style="color:#ff0000;"><meta http-equiv="cache-control" content="max-age=604800, public"></span>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--IE10-->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
<!--<meta name=”renderer” content=”webkit|ie-comp|ie-stand”>-->
<meta name=”renderer” content=”webkit|ie-comp|ie-stand” />

<!-- CSS styles -->
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/base.css" />

<script src="${pageContext.request.contextPath}/common/jquery/js/jquery-1.8.2.js" charset="utf-8"></script>
<script src="${pageContext.request.contextPath}/common/jquery/js/jquery.ui.core.js" charset="utf-8"></script>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章