<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>
上面的配置含義表示html頁面由服務器的缺省Servlet進行處理,同時注意上面的配置項要寫在DispatcherServlet前面。html
若是你的DispatcherServlet攔截"/",攔截了全部的請求,那麼同時對.js,.jpg等靜態文件的訪問也就被攔截了,從controller返回的html頁面也被攔截了,所以瀏覽器得不到頁面。web
<mvc:resources location="/static/**" mapping="/static/" />
/static/**爲映射路徑,location指定靜態資源的位置.使用<mvc:resources/>元素,把映射路徑註冊到SimpleUrlHandlerMapping的urlMap中,key爲註冊的映射路徑,而value爲ResourceHttpRequestHandler,這樣就巧妙的把對靜態資源的訪問由HandlerMapping轉到ResourceHttpRequestHandler處理並返回spring
在springMVC-servlet.xml中配置<mvc:default-servlet-handler />後,會在Spring MVC上下文中定義一個org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它會像一個檢查員,對進入DispatcherServlet的URL進行篩查,若是發現是靜態資源的請求,就將該請求轉由Web應用服務器默認的Servlet處理,若是不是靜態資源的請求,才由DispatcherServlet繼續處理。瀏覽器
<mvc:default-servlet-handler>和<mvc:resource>的區別:<mvc:default-servlet-handler>是將靜態資源的處理轉給服務器默認的servlet進行處理,<mvc:resource>是由spring本身處理靜態資源,這樣spring能夠添加一些額外的功能,如緩存等。緩存