博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Filter 禁止浏览器缓存动态资源,例如JSP资源 -学习笔记
阅读量:6824 次
发布时间:2019-06-26

本文共 2245 字,大约阅读时间需要 7 分钟。

当访问一个web资源时,没有得到对应的结果,有可能是Filter没有放行资源

静态资源和动态资源进行不同的缓存处理,代码如下:====NO2判段是否以jsp结尾 处
Expires数据头:值为GMT时间值,为-1指浏览器不要缓存页面
Cache-Control响应头有两个常用值:
no-cache指浏览器不要缓存当前页面。
max-age:xxx指浏览器缓存页面xxx秒

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() {    }}

web.xml

FilterDemo5
cn.itcast.web.filter.FilterDemo5
html
86400
FilterDemo5
/*

转载于:https://blog.51cto.com/357712148/2105116

你可能感兴趣的文章
11月15日云栖精选夜读:分布式服务框架Dubbo疯狂更新!阿里开源要搞大事情?...
查看>>
Druid数据库连接池就这么简单
查看>>
Python最假的库:Faker
查看>>
IDE 插件新版本发布,开发效率 “biu” 起来了
查看>>
阿里云安全肖力:安全基础建设是企业数字化转型的基石
查看>>
Redis 基础、高级特性与性能调优
查看>>
BZT52C15S资料
查看>>
Laravel Telescope入门教程(上)
查看>>
Linux配置ip 及网络问题排查
查看>>
AndroidStudio用Cmake方式编译NDK代码(cmake配置.a库)
查看>>
OSChina 周四乱弹 ——黑丝短裙java程序员同事
查看>>
设置iptables之后不能正常访问ftp解决方法
查看>>
移动端rem布局
查看>>
jsp与iframe跨域访问的一个方法
查看>>
ViewPager + Fragment 取消预加载
查看>>
BigDecimal 02 - 注意事项
查看>>
用js玩桌球游戏
查看>>
maven下运行jetty报错
查看>>
android 配置framework 使应用首选安装在SD卡
查看>>
h5 点击表单 顶部fixed 菜单栏 上移
查看>>