1. 程式人生 > >被多人誤解的url-pattern配置為"/"和"/*"的區別

被多人誤解的url-pattern配置為"/"和"/*"的區別

為什麼說被多人誤解,因為大多人都把配置“/”理解成不能攔截字尾名的,其實這種理解是錯誤的!

它其實也能攔截“.js”,“.css”,".png"等靜態資源的訪問。

為什麼?

因為<url-pattern>/</url-pattern>在Tomcat伺服器是預設的servlet;通過檢視Tomcat web.xml可得知,

它除了能夠處理靜態資源還能夠處理HTTP快取請求,媒體(音訊/視訊)資料流和檔案下載簡歷。所以如果我們的專案中配置了"/",會覆蓋掉tomcat中的default servlet。


所以當springMVC的前端控制器配置為“/”時,需要在主配置檔案中配置放行靜態資源。

第一種:

<!-- 放行靜態資源 -->

<mvc:resources location="/js/" mapping="/js/**"/> 

<mvc:resources location="/css/" mapping="/js/**"/>

 <mvc:resources location="/images/" mapping="/js/**"/>

第二種:

<mvc:default-servlet-handler />