springmvc靜態檔案的載入方式

2021-08-27 03:10:03 字數 1083 閱讀 7418

1.

在springmvc-servlet.xml中配置後,會在spring mvc上下文中定義乙個org.springframework.web.servlet.resource.defaultservlethttprequesthandler,它會像乙個檢查員,對進入dispatcherservlet的url進行篩查,如果發現是靜態資源的請求,就將該請求轉由web應用伺服器預設的servlet處理,如果不是靜態資源的請求,才由dispatcherservlet繼續處理。

一般web應用伺服器預設的servlet名稱是」default」,因此defaultservlethttprequesthandler可以找到它。如果你所有的web應用伺服器的預設servlet名稱不是」default」,則需要通過default-servlet-name屬性顯示指定:

-handler default-servlet

-name

="所使用的web伺服器預設使用的servlet名稱"

/>

2.

location="/,classpath:/meta-inf/publicresources/"
以上配置將web根路徑」/」及類路徑下 /meta-inf/publicresources/ 的目錄對映為/resources路徑。假設web根路徑下擁有images、js這兩個資源目錄,在images下面有bg.gif,在js下面有test.js檔案,則可以通過 /resources/images/bg.gif 和 /resources/js/test.js 訪問這二個靜態資源。

3.直接用容器的defaultservlet來處理靜態資源請求 ,效能會好很多

比如將靜態檔案都放在了resource目錄下,在web.xml中進行配置

defaultservlet-name>

/resource/*url-pattern>

並將它放在所有servlet的最前面(為了讓它最先匹配),這樣的話效能上應該比較好

defaultservlet-name>

*.htmlurl-pattern>

springmvc訪問靜態檔案

如果是springmvc攔截所有請求的這種情況的話,有兩種解決方法。1,在mvc配置檔案中加上這樣的一句話 default servlet handler 2.或者加上下面的這句話 location static 上面這兩種方法都可以。親測有效。但是如果加上 的話,還需要進行下一步的配置。需要在we...

springmvc配置時靜態檔案的訪問

springmvc中訪問頁面時,走的都是dispatcherservlet,找不到就會報錯404 訪問靜態檔案,如 jpg,png,css,js等,如何避免dispatcherservlet的攔截 方法一 啟用tomcat的defaultservlet來處理靜態檔案 servlet name def...

關於springmvc靜態資源檔案載入的問題

這兩天遇到了靜態資源無法載入的問題,嘗試了半天,得出了一些結果,這裡做乙個總結。首先為什麼會出現這樣的情況 因為在web.xml檔案中,配置了dispatchservlet,攔截了所有請求交給springmvc來處理。以下方法可能在不同環境下結果不同,僅為我本地測試的結果 需要載入什麼型別的檔案就新...