SpringMVC處理靜態資源

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>

20161111085151372

相關文章
相關標籤/搜索