JAVA WEB过滤器设置浏览器缓存
最近在工作中对一个开源框架进行二次开发,发现在浏览器运行哪些静态资源浏览器是不缓存的,找了好久都没有找到设置的地方,只好自食其力,用Java的过滤器设置过期时间,详情且看代码。
public class ResponseFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse res = (HttpServletResponse) response; Date date = new Date(); //设置缓存周期为一个小时 Long cacheCycle = (long) (60 * 60 * 1000); Long time = date.getTime() + cacheCycle; //Last-Modified:页面的最后生成时间 res.setDateHeader("Last-Modified", date.getTime()); //Expires:过时期限值 res.setDateHeader("Expires", time); //Cache-Control来控制页面的缓存与否,public:浏览器和缓存server都能够缓存页面信息 res.setHeader("Cache-Control", "public"); //Pragma:设置页面是否缓存,为Pragma则缓存,no-cache则不缓存 res.setHeader("Pragma", "Pragma"); chain.doFilter(request, res); } @Override public void destroy() { } }