利用 filter 机制给静态资源 url 加上时间戳,来防止js和css文件的缓存问题
程序员文章站
2024-03-12 12:57:08
直接上代码:
public class weixinfilter implements filter{
private static logger logger...
直接上代码:
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文件的缓存问题的相关内容,希望能够帮助到大家。