码迷,mamicode.com
首页 > Web开发 > 详细

Filter 禁止浏览器缓存动态资源,例如JSP资源 -学习笔记

时间:2018-04-18 22:31:38      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:Filter 禁止浏览器缓存动态资源例

当访问一个web资源时,没有得到对应的结果,有可能是Filter没有放行资源
静态资源和动态资源进行不同的缓存处理,代码如下:====NO2判段是否以jsp结尾 处


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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

//禁止浏览器缓存动态资源,例如JSP资源
public class FilterDemo5 implements Filter {

    //思路
    private FilterConfig filterConfig;
    public void init(FilterConfig filterConfig) throws ServletException {
        this.filterConfig = filterConfig;
    }
    public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {

        //NO将父子接口强转
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;

        //NO1取得客户端访问的资源的URI,形式/day04/login.jsp
        //http:
        String uri = request.getRequestURI();

        //静态资源和动态资源进行不同的缓存处理,代码如下:
        //NO2判段是否以jsp结尾,即动态资源
        if(uri!=null && uri.endsWith("jsp")){
            //NO3如果是动态资源,设置三个响应头通知浏览器不缓存
            response.setHeader("expires","-1");
            response.setHeader("cache-control","no-cache");
            response.setHeader("pragma","no-cache");
        }else if(uri!=null && uri.endsWith("html")){
            //NO4如果是静态资源,缓存一定的时间
            String strHtml = filterConfig.getInitParameter("html");
            long time = System.currentTimeMillis()+Integer.parseInt(strHtml)*1000;
            //time为毫秒值
            response.setDateHeader("expires",time);
            response.setHeader("cache-control",time/1000+"");
            response.setHeader("pragma",time/1000+"");
        }

        //NO5放行资源
        chain.doFilter(request,response);
    }
    public void destroy() {
    }
}

Filter 禁止浏览器缓存动态资源,例如JSP资源 -学习笔记

标签:Filter 禁止浏览器缓存动态资源例

原文地址:http://blog.51cto.com/357712148/2105116

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!