Filter小应用/ 动态jsp页面不缓存,静态文件缓存,Firefox如何去查看和清除缓存

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41376740/article/details/81981061

前言

今天学习了Filter的小作用,这个缓存还是比较重要的一门技术,能够加快你网页的访问。往往动态的jsp页面,是不需要缓存的,一个动态的玩意儿你缓存了干嘛。但是往往那些持久的,不变的静态资源你需要进行缓存。这样可以加快浏览器的访问速度。

代码

缓存静态资源:

@WebFilter(filterName = "StaticCachedFilter")
public class StaticCachedFilter implements Filter {

    private FilterConfig config = null;

    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) resp;

        //1.获取用户想访问的资源
        String uri = request.getRequestURI();
        //2.得到后缀名和配置文件项进行匹配
        String ext = uri.substring(uri.lastIndexOf(".") + 1);
        //3.设置缓存的时间
        String time = config.getInitParameter(ext);

        if (time != null) {
            long time1 = Long.parseLong(time) * 3600 * 1000;
            response.setDateHeader("Expires", System.currentTimeMillis() + time1);
        }

        chain.doFilter(req, resp);
    }

    public void init(FilterConfig config) throws ServletException {
        this.config = config;
    }

动态jsp不缓存.

@WebFilter(filterName = "NoCacheFilter", urlPatterns = {"*.jsp"})
public class NoCacheFilter implements Filter {
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        HttpServletResponse response = (HttpServletResponse) resp;
        HttpServletRequest request = (HttpServletRequest) req;

        response.setDateHeader("Expires", -1);
        response.setHeader("Cache-Control", "no-cache");
        response.setHeader("Pragma", "no-cache");
        chain.doFilter(request, response);
    }

    public void init(FilterConfig config) throws ServletException {

    }

}

代码都比较简单,但是验证的过程倒是废了一点时间。Firefox如何去查看,并且清除缓存?

Firefox缓存

1.查看缓存:浏览器输入about:cache,注意中间有冒号
这里写图片描述
2.点进去查看缓存。
这里写图片描述
3、清除缓存,记得不要清除上面的cookie,不然你下次登录啥的时候,你自己就不能免密登录了。
这里写图片描述

查看Filter缓存结果

第一次:
这里写图片描述
查看图片缓存时间:
这里写图片描述
第二次:
这里写图片描述

不难看到,浏览器第二次没有去向服务器请求图片,而是使用了缓存的内容。并且在缓存内容中也没有看到index.jsp的相关缓存。说明我们的代码是有效的。

总结

所有的知识点,如果只是看不去尝试,就体会不到写代码的乐趣~

猜你喜欢

转载自blog.csdn.net/qq_41376740/article/details/81981061
今日推荐