【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配置
完成这一步,在服务端已经实现了对页面的缓存,但是当前情况下页面还是会每次访问服务器的,只是压力减小了CacheForWeek cn.com.system.filter.CacheForWeekFilter Cache-Control max-age=604800, public CacheForWeek /js/ CacheForWeek /images/ CacheForWeek /css/
如何让页面在一段时间内不访问服务器呢
实现方式是对应公用的JS都放到一个页面中,别的页面包含他,在这个页面中增加页面缓存