疑惑總是需要一次艱難的理解堂竟,才能夠解決的哗戈。仔細(xì)理解下郊艘。參考:http://www.tuicool.com/articles/Bzqa2a 講的很詳細(xì)。
版權(quán)所有唯咬,轉(zhuǎn)載注明纱注。
url-pattern的匹配規(guī)則,有點(diǎn)像計(jì)算機(jī)網(wǎng)絡(luò)中的路由規(guī)則匹配過(guò)程胆胰,其匹配的不是第一個(gè)狞贱,而是最優(yōu)的匹配。
Tomcat啟動(dòng)時(shí)蜀涨,會(huì)將web.xml中的配置加載瞎嬉,并進(jìn)行映射規(guī)則整理。當(dāng)出現(xiàn)訪問(wèn)時(shí)勉盅,對(duì)于訪問(wèn)請(qǐng)求佑颇,會(huì)采用一個(gè)鏈?zhǔn)降钠ヅ漤樞蚨サ簦瑏?lái)匹配所有的處理器的url-pattern草娜。當(dāng)出現(xiàn)第一個(gè)匹配的處理器時(shí),則交給該處理器進(jìn)行處理痒筒。
匹配的順序如下:
-
Rule 1: 精確匹配 exactWrappers 如
'/test.do'
-
Rule 2: 前綴匹配 wildcardWrappers 如
'/*'
-
Rule 3: 擴(kuò)展名匹配 extensionWrappers 如
'*.jsp宰闰、*.html茬贵、*.js'
-
Rule 4: 使用資源文件來(lái)處理servlet、welcomeResources
歡迎頁(yè)面
-
Rule 7: 使用默認(rèn)的servlet defaultWrapper 默認(rèn)處理:
'/'