疑惑總是需要一次艱難的理解,才能夠解決的。仔細理解下。參考:http://www.tuicool.com/articles/Bzqa2a 講的很詳細。
版權所有,轉載注明。
url-pattern的匹配規則,有點像計算機網絡中的路由規則匹配過程,其匹配的不是第一個,而是最優的匹配。
Tomcat啟動時,會將web.xml中的配置加載,并進行映射規則整理。當出現訪問時,對于訪問請求,會采用一個鏈式的匹配順序,來匹配所有的處理器的url-pattern。當出現第一個匹配的處理器時,則交給該處理器進行處理。
匹配的順序如下:
-
Rule 1: 精確匹配 exactWrappers 如
'/test.do'
-
Rule 2: 前綴匹配 wildcardWrappers 如
'/*'
-
Rule 3: 擴展名匹配 extensionWrappers 如
'*.jsp、*.html、*.js'
-
Rule 4: 使用資源文件來處理servlet、welcomeResources
歡迎頁面
-
Rule 7: 使用默認的servlet defaultWrapper 默認處理:
'/'