最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring MVC之mvc:resources如何處理靜態(tài)資源

 更新時間:2025年03月25日 10:37:51   作者:嘆人間,美中不足今方信  
這篇文章主要介紹了Spring MVC之mvc:resources如何處理靜態(tài)資源問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Spring MVC之mvc:resources處理靜態(tài)資源

由于早期的 SpringMVC 不能很好地處理靜態(tài)資源,所以在 web.xml 中配置 DispatcherServlet 的請求映射時,往往采用 \*.do、\*.xhtml 等方式,這就決定了請求 URL 必須是一個帶后綴的 URL,而無法采用真正 REST 風格的 URL

如果將DispatcherServlet請求映射配置為“/”,那么Spring MVC將捕獲web容器所有請求,包括靜態(tài)資源請求,Spring MVC會將它們當成一個普通請求處理,從而報錯。

為什么要使用<mvc:resources/>?

首先,<mvc:resources/>允許靜態(tài)資源放置在任何地方,如 WEB-INF 目錄下、類路徑下等,甚至可以將 JavaScript 等靜態(tài)文件打包到 JAR 包中,通過 location 屬性指定靜態(tài)資源的位置,由于 location 屬性是 Resource 類型,因此可以使用諸如 “classpath:” 等的資源前綴指定資源位置。傳統(tǒng)的 Web 容器的靜態(tài)資源只能放在 Web 容器的根路徑下,<mvc:resources/>打破了這個限制。

其次,<mvc:resources/>可以對靜態(tài)資源提供優(yōu)化,例如:通過 cacheSeconds 屬性指定靜態(tài)資源在瀏覽器端的緩存時間,充分利用瀏覽器端的緩存,在輸出靜態(tài)資源時,會根據(jù)配置設(shè)置好響應(yīng)報文的 ExpiresCache-Control 值。在接受到靜態(tài)資源的獲取請求時,會檢查請求頭的 Last_modified 值。如果靜態(tài)資源沒有發(fā)生變化,直接返回303響應(yīng)狀態(tài)碼,指示客戶端使用瀏覽器緩存的數(shù)據(jù)。

簡單配置

<!-- 
使用 maven 編譯好的結(jié)構(gòu)如下項目結(jié)構(gòu),可以看出 webapp 下的 html、images、jquery-2.1.1和 WEB-INF 都被編譯到了 target 下,唯一變得是 WEB-INF 下多出了 classes 的目錄,這個 classes 就是 spring 中俗稱的 classpath
location="/" 表示 target 下的 html、images、jquery-2.1.1 這三個文件夾及其子文件,mapping="/resources/**" 表示這三個文件夾的根目錄,
也就是說在瀏覽器輸入 http://localhost:8080/項目名/resources/html/goods.html 訪問 html 下的 goods.html 文件 
-->
<mvc:resources mapping="/resources/**" location="/" />
<!-- 
映射 target 下的 WEB-INF 及其子文件的根目錄為 web,這樣在瀏覽器可以訪問 WEB-INF 下的所有文件
例如:http://localhost:8080/項目名/web/web.xml、http://localhost:8080/項目名/web/ftl/freemarker.html
注意:一般情況下,不要配置 WEB-INF
 -->
<mvc:resources mapping="/web/**" location="/WEB-INF/" />
<!--
配置 classes 下的文件
訪問:http://localhost:8080/項目名/config/conf.json
-->
<mvc:resources mapping="/config/**" location="classpath:config/json/" />

項目結(jié)構(gòu)

說明

1、 我們配置的 web 根路徑 “/” 下包含 html、jquery-2.1.1imagesWEB-INF,除了 WEB-INF 外,其他三個文件夾都可以訪問,而 WEB-INF 不能被訪問。因為 SpringMVC 在處理映射的靜態(tài)資源時,會檢查引用路徑是否包含 WEB-INF 或者 META-INF,如果包括,則直接返回 null 。當然我們也可以配置 location="/WEB-INF/" 。

<mvc:resources mapping="/resources/**" location="/" />
<mvc:resources mapping="/web/**" location="/WEB-INF/" />

2、如果我們設(shè)置了 cache-period 屬性,即設(shè)置靜態(tài)資源在客戶端瀏覽器中的緩存有效時間,那么當發(fā)布了新版本應(yīng)用時,由于客戶端瀏覽器緩存的緣故,需要使這些靜態(tài)資源成為“新的資源”,例如給靜態(tài)資源的路徑添加應(yīng)用發(fā)布的版本號

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Maven dependencies與dependencyManagement的區(qū)別詳解

    Maven dependencies與dependencyManagement的區(qū)別詳解

    這篇文章主要介紹了Maven dependencies與dependencyManagement的區(qū)別詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • JSP頁面pageEncoding和contentType屬性

    JSP頁面pageEncoding和contentType屬性

    有關(guān)于JSP頁面中pageEncoding和contentType屬性。
    2013-04-04
  • 聊聊Spring?Cloud?Gateway過濾器精確控制異常返回問題

    聊聊Spring?Cloud?Gateway過濾器精確控制異常返回問題

    這篇文章主要介紹了Spring?Cloud?Gateway過濾器精確控制異常返回問題,本篇任務(wù)就是分析上述現(xiàn)象的原因,通過閱讀源碼搞清楚返回碼和響應(yīng)body生成的具體邏輯,需要的朋友可以參考下
    2021-11-11
  • SpringBoot 如何使用 JWT 保護 Rest Api 接口

    SpringBoot 如何使用 JWT 保護 Rest Api&nbs

    使用spring-boot開發(fā)RESTful API非常的方便,在生產(chǎn)環(huán)境中,對發(fā)布的 API 增加授權(quán)保護是非常必要的,現(xiàn)在我們來看如何利用JWT技術(shù)為API 增加授權(quán)保護,保證只有獲得授權(quán)的用戶才能夠訪問 API,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • SpringBoot詳細介紹SPI機制示例

    SpringBoot詳細介紹SPI機制示例

    這篇文章主要介紹了深入解析Spring Boot的SPI機制詳情,SPI是JDK內(nèi)置的一種服務(wù)提供發(fā)現(xiàn)機制,可以用來啟用框架擴展和替換組件,主要用于框架中開發(fā),更多相關(guān)介紹,感興趣的小伙伴可以參考一下下面文章內(nèi)容
    2022-08-08
  • Java深度學習庫DJL實現(xiàn)Python的NumPy方式

    Java深度學習庫DJL實現(xiàn)Python的NumPy方式

    本文介紹了DJL庫的背景和基本功能,包括NDArray的創(chuàng)建、數(shù)學運算、數(shù)據(jù)獲取和設(shè)置等,同時,還展示了如何使用NDArray進行數(shù)據(jù)預(yù)處理和模型推理部署
    2025-02-02
  • 詳解Elasticsearch如何把一個索引變?yōu)橹蛔x

    詳解Elasticsearch如何把一個索引變?yōu)橹蛔x

    這篇文章主要為大家介紹了詳解Elasticsearch如何把一個索引變?yōu)橹蛔x示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Spring Boot使用Druid進行維度的統(tǒng)計和監(jiān)控

    Spring Boot使用Druid進行維度的統(tǒng)計和監(jiān)控

    這篇文章主要介紹了Spring Boot使用Druid進行維度的統(tǒng)計和監(jiān)控,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-04-04
  • 淺談Java中Collections.sort對List排序的兩種方法

    淺談Java中Collections.sort對List排序的兩種方法

    本文介紹了Java中Collections.sort對List排序的兩種方法以及Comparable 與Comparator區(qū)別,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Spring定時任務(wù)@scheduled多線程使用@Async注解示例

    Spring定時任務(wù)@scheduled多線程使用@Async注解示例

    這篇文章主要為大家介紹了Spring定時任務(wù)@scheduled多線程使用@Async注解示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11

最新評論

宜丰县| 宝应县| 留坝县| 永宁县| 宜君县| 揭阳市| 新巴尔虎左旗| 刚察县| 正安县| 望奎县| 屏山县| 太康县| 太保市| 衡阳市| 永登县| 洪泽县| 陈巴尔虎旗| 石台县| 通海县| 青铜峡市| 光山县| 安达市| 浦江县| 育儿| 乐亭县| 保德县| 改则县| 泾川县| 通山县| 依安县| 新民市| 遂宁市| 厦门市| 朝阳市| 黔东| 金川县| 鹿泉市| 阿克陶县| 思南县| 门头沟区| 理塘县|