欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

利用 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文件的缓存问题

在开发阶段还是比较有用的。

以上所述是小编给大家介绍的利用 filter 机制给静态资源 url 加上时间戳,来防止js和css文件的缓存问题的相关内容,希望能够帮助到大家。