SpringMVC---處理靜態資源

一:爲什麼會出現處理靜態資源請求失敗的問題

  1. 優雅的REST風格的資源URL,不希望帶.html或。do等後綴。
  2. 若將DispatcherServlet請求映射配置爲/,則springMVC將會捕獲WEB容器的所有請求,包括靜態資源的請求,springMVC會將當成一個普通的請求處理,因找不到對應的處理器導致錯誤。

二:解決辦法

  1. 可以在springMVC的配置文件中配置<mvc:default-servlet-handler/>的方式解決靜態資源的問題
  2. 將在 SpringMVC 上下文中定義一個 DefaultServletHttpRequestHandler,它會對進入 DispatcherServlet 的 請求進行篩查,如果發現是沒有經過映射的請求,就將該請求交由 WEB 應用服務器默認的 Servlet 處理,如果不是靜態資源的請求,才由 DispatcherServlet 繼續處理
  3. 一般 WEB 應用服務器默認的 Servlet 的名稱都是 default。若所使用的 WEB 服務器的默認 Servlet 名稱不是 default,則需要通過 defaultservlet-name 屬性顯式指定

三:代碼實現

<!-- 
	 	將在 SpringMVC 上下文中定義一個 DefaultServletHttpRequestHandler,它會對進入 DispatcherServlet 的 請求進行篩查,
	 	如果發現是沒有經過映射的請求,就將該請求交由 WEB 應用服務器默認的 Servlet 處理,如果不是靜態資源的請求,
	 	才由 DispatcherServlet 繼續處理.
		一般 WEB 應用服務器默認的 Servlet 的名稱都是 default。若所使用的 WEB 服務器的默認 Servlet 名稱不是 default,
		則需要通過 defaultservlet-name 屬性顯式指定
	 -->
	<mvc:default-servlet-handler/>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章