一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 利用 filter 機制給靜態資源 url 加上時間戳,來防止js和css文件的緩存問題

利用 filter 機制給靜態資源 url 加上時間戳,來防止js和css文件的緩存問題

2020-05-07 12:03digdeep JAVA教程

這篇文章主要介紹了利用 filter 機制給靜態資源 url 加上時間戳,來防止js和css文件的緩存問題的相關資料,需要的朋友可以參考下

直接上代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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文件的緩存問題的相關內容,希望能夠幫助到大家。

延伸 · 閱讀

精彩推薦
  • JAVA教程java對ArrayList排序代碼示例

    java對ArrayList排序代碼示例

    本文通過代碼示例給大家介紹java對arraylist排序,代碼簡潔易懂,感興趣的朋友一起學習吧 ...

    sunmenggmail4982020-01-20
  • JAVA教程Java 進制轉換的方法

    Java 進制轉換的方法

    這篇文章介紹了Java 進制轉換的方法,有需要的朋友可以參考一下 ...

    java之家4092019-10-14
  • JAVA教程幾種JAVA細粒度鎖的實現方式

    幾種JAVA細粒度鎖的實現方式

    這篇文章主要為大家詳細介紹了幾種JAVA細粒度鎖的實現方式,感興趣的小伙伴們可以參考一下 ...

    GameKing3522020-04-30
  • JAVA教程Java基礎教程之Hello World到面向對象

    Java基礎教程之Hello World到面向對象

    這篇文章主要介紹了Java基礎教程之Hello World,Java入門教程,講解了Java中的必備語法、編譯與運行知識、數據類型等,需要的朋友可以參考下 ...

    junjie2322019-11-27
  • JAVA教程Java集合類中文介紹

    Java集合類中文介紹

    本文首先對Java集合類框架做了簡單說明,之后對主要類和為API做了介紹:Collection、List、Set、AbstractCollection、AbstractList、AbstractSet、Iterator、ListIterator。 ...

    java教程網5202019-10-18
  • JAVA教程Java簡單實現SpringMVC+MyBatis分頁插件

    Java簡單實現SpringMVC+MyBatis分頁插件

    自己最近搭建的一個SpringMVC+Mybatis的框架 屬于無實體類的框架 并實現了Myabtis的自動分頁和總數查詢 只要傳入分頁參數便能自動查詢總數和分頁 總數封裝在...

    hebedich1902020-01-03
  • JAVA教程java實現動態代理示例分享

    java實現動態代理示例分享

    動態代理作為代理模式的一種擴展形式,廣泛應用于框架(尤其是基于AOP的框架)的設計與開發,本文將通過實例來講解Java動態代理的實現過程。 ...

    java教程網3832019-11-15
  • JAVA教程深入探討Java多線程中的volatile變量

    深入探討Java多線程中的volatile變量

    這篇文章主要為大家詳細并深入的探討Java多線程中的volatile變量,volatile用來確保將變量的更新操作通知到其他線程,保證了新值能立即同步到主內存,以及每...

    lijiao3412020-04-07
主站蜘蛛池模板: 色综合伊人色综合网亚洲欧洲 | 垫底辣妹免费观看完整版 | 成人免费观看在线视频 | 白白国产永久免费视频 | 喜欢老头吃我奶躁我的动图 | 欧美国产日产精品免费视频 | 高跟丝袜麻麻求我调教 | 欧美日韩亚洲国内综合网俺 | 双夫1v2| 我和岳偷长篇小说 | 白白国产永久免费视频 | free哆拍拍免费永久视频 | 天天综合天天影视色香欲俱全 | 把老师操了 | 免费jizz在在线播放国产 | 99热精品成人免费观看 | 性xxxx中国老妇506070 | 免费精品视频在线 | 亚洲精品免费在线 | 精品四虎 | 丝袜高跟小说 | 亚洲精品国产AV成人毛片 | 91精品91久久久久久 | 成年人免费在线视频 | 菠萝视频污 | 精品国产一区二区三区国产馆 | 99精品影院| 小便japanesewctv | 1024免费观看完整版在线播放 | 亚洲mm色国产网站 | 大陆国产精品视频 | 亚洲视频精选 | 护士被多人调教到失禁h | 无码AV精品一区二区三区 | 欧美国产在线视频 | 成人国产网站v片免费观看 成人国产精品视频 | 色老板在线观看 | 精品久久伦理中文字幕 | 欧美一级在线 | 日韩国产成人资源精品视频 | 男人插曲女人下面 |