1.默認的訪問的URL都會被DispatcherServlet所攔截,好比攔截規則定義爲/;
也就是說,全部的請求都會被springMVC攔截,根據HandlerMapping的配置來匹配對應的URL映射,而對於靜態資源來講,默認的Spring MVC是沒有註冊匹配規則的,此時若你去請求一個靜態資源,則會報404錯誤。
2.設置靜態訪問資源目的就是不去攔截該urlweb
web.xmlspring
<!-- 配置springMVC -->
<servlet>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!-- contextConfigLocation 是固定的 -->
<param-name>contextConfigLocation</param-name>
<!-- 配置讀取路徑-->
<param-value>classpath*:config/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<!-- 配置攔截規則-->
<url-pattern>/</url-pattern>
</servlet-mapping>
spring-servlet.xmlmvc
<!-- 靜態資源訪問 -->
<mvc:resources location="/img/" mapping="/img/**" />
<!-- mapping:映射,location:本地資源路徑,必定要是webapp根目錄下,注意必須是webapp根目錄下的路徑。 **,它表示映射/img/下的全部文件 -->
測試:爲了方便測試,我直接訪問圖片路徑,由於配置的路徑規則是/,因此對全部的url都會路攔截.
測試一:不配靜態資源訪問,
app
測試二:配靜態資源訪問,能夠不被攔截規則攔截webapp