SpringMVC處理靜態資源

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>

20161111085151372

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