当前位置: 移动技术网 > IT编程>开发语言>Java > 利用 filter 机制给静态资源 url 加上时间戳,来防止js和css文件的缓存问题

利用 filter 机制给静态资源 url 加上时间戳,来防止js和css文件的缓存问题

2019年07月22日  | 移动技术网IT编程  | 我要评论

直接上代码:

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文件的缓存问题的相关内容,希望能够帮助到大家。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网