利用 filter 機(jī)制給靜態(tài)資源 url 加上時間戳,來防止js和css文件的緩存問題
直接上代碼:
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 { /** 靜態(tài)資源 為防止緩存,加上時間戳標(biāo)志 */ public static final String STATIC_TAIL = "__oawx_t=";
配置下過濾器就行了,效果如下:
在開發(fā)階段還是比較有用的。
以上所述是小編給大家介紹的利用 filter 機(jī)制給靜態(tài)資源 url 加上時間戳,來防止js和css文件的緩存問題的相關(guān)內(nèi)容,希望能夠幫助到大家。
相關(guān)文章
IntelliJ IDEA2020.1版本更新pom文件自動導(dǎo)包的方法
這篇文章主要介紹了IntelliJ IDEA2020.1版本更新pom文件自動導(dǎo)包的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06java 集合之實(shí)現(xiàn)類ArrayList和LinkedList的方法
下面小編就為大家?guī)硪黄猨ava 集合之實(shí)現(xiàn)類ArrayList和LinkedList的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10SpringBoot讀取properties配置文件中的數(shù)據(jù)的三種方法
本文主要介紹了SpringBoot讀取properties配置文件中的數(shù)據(jù)的三種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06Java編程Socket實(shí)現(xiàn)多個客戶端連接同一個服務(wù)端代碼
這篇文章主要介紹了Java編程Socket實(shí)現(xiàn)多個客戶端連接同一個服務(wù)端代碼,具有一定參考價值,需要的朋友可以了解下。2017-11-11Java和C++通過new創(chuàng)建的對象有何區(qū)別?
Java和C++都是面向?qū)ο蟮木幊陶Z言,然而Java和C++在創(chuàng)建對象時卻存在不同的方式,由于方式的不同導(dǎo)致在內(nèi)存中管理的不同。這篇文章主要給大家介紹了關(guān)于Java和C++通過new創(chuàng)建對象區(qū)別的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-11-11Mybatis實(shí)現(xiàn)單個和批量定義別名typeAliases
這篇文章主要介紹了Mybatis實(shí)現(xiàn)單個和批量定義別名typeAliases,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09Spring實(shí)戰(zhàn)之使用靜態(tài)工廠方法創(chuàng)建Bean操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之使用靜態(tài)工廠方法創(chuàng)建Bean操作,結(jié)合實(shí)例形式分析了靜態(tài)工廠方法創(chuàng)建Bean的相關(guān)實(shí)現(xiàn)步驟與操作注意事項(xiàng),需要的朋友可以參考下2019-11-11