SpringMVC 處理靜態資源: html
1. 爲甚麼會有這樣的問題: 服務器
優雅的 REST 風格的資源URL 不但願帶 .html 或 .do 等後綴 mvc
若將 DispatcherServlet 請求映射配置爲 / , ide
則SpringMVC 將捕獲WEB 容器的全部請求, 包括靜態資源的請求, SpringMVC 會將他們當成一個普通請求處理, spa
因找不到對應處理器將致使錯誤。 htm
2. 解決:在 SpringMVC 的配置文件中配置<mvc:default-servlet-handler/> 的方式解決靜態資源的問題。blog
default-servlet-handler 將在 SpringMVC 上下文中定義一個 DefaultServletHttpRequestHandler, 它會對進入 DispatcherServlet 的請求進行篩選 資源
若是發現是沒有通過映射處理的請求,將該請求交由 WEB 應用服務器默認的Servlet處理。 若是不是靜態資源的請求, 才由 DispatcherServlet 繼續處理 servlet
通常 WEB 應用服務器默認的 Servlet 的名稱都是 default。 it
若所使用的WEB 服務器默認的Servlet 名稱不是default, 則須要經過default-servlet-name 屬性顯式指定
其實只配置<mvc:default-servlet-handler/> 是不夠的,還要配置<mvc:annotation-driven></mvc:annotation-driven>