利用 filter 机制给静态资源 url 加上时间戳,来防止js和css文件的缓存问题
2016-05-29 11:51
1086 查看
直接上代码:
public class WeiXinFilter implements Filter{ private static Logger logger = LoggerFactory.getLogger(WeiXinFilter.class); public void init(FilterConfig fConfig) throws ServletException {} public void destroy() {} public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest)request; HttpServletResponse resp = (HttpServletResponse)response; String requestURL = req.getRequestURL().toString(); String queryStr = req.getQueryString(); // add timestamp to static resource, to avoid cache if(requestURL != null && (requestURL.endsWith(".js") || requestURL.endsWith(".css"))){ // static resource String newURL = null; if(StringUtils.isNotBlank(queryStr) && queryStr.trim().indexOf(ParameterConfig.STATIC_TAIL) == -1){ newURL = requestURL + "?" + queryStr + "&" + ParameterConfig.STATIC_TAIL + new Date().getTime(); resp.sendRedirect(newURL); // req.getRequestDispatcher(newURL).forward(request, response); return; } if(StringUtils.isBlank(queryStr)){ newURL = requestURL + "?" + ParameterConfig.STATIC_TAIL + new Date().getTime(); resp.sendRedirect(newURL); // req.getRequestDispatcher(newURL).forward(request, response); return; } try{ chain.doFilter(request, response); }catch(Exception e){ logger.error(e.toString()); } return; } public class ParameterConfig { /** 静态资源 为防止缓存,加上时间戳标志 */ public static final String STATIC_TAIL = "__oawx_t=";
配置下过滤器就行了,效果如下:
在开发阶段还是比较有用的。
以上所述是小编给大家介绍的利用 filter 机制给静态资源 url 加上时间戳,来防止js和css文件的缓存问题的相关内容,希望能够帮助到大家。
相关文章推荐
- jQuery plugin items filter
- 全国哀悼日网站页面变成灰色的filter方法
- 自学成才的秘密:115个 web Develop 资源
- 用css filter做鼠标滑过图片效果
- C#中静态的深入理解
- 编程语言里的静态、动态、强类型、弱类型等概念介绍
- C#中使用资源的方法分析
- Shell脚本实现Linux系统和进程资源监控
- ASP 使用Filter函数来检索数组的实现代码
- C#静态static的用法实例分析
- C#静态构造函数用法实例分析
- JavaScript 数组some()和filter()的用法及区别
- Vue.js报错Failed to resolve filter问题的解决方法
- 借助javascript代码判断网页是静态还是伪静态
- ASP.NET MVC:Filter和Action的执行介绍
- jQuery遍历DOM节点操作之filter()方法详解
- jQuery中each()、find()和filter()等节点操作方法详解(推荐)
- Flow之一个新的Javascript静态类型检查器