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