在web.xml配置servlet时可以使用通配符*。
第一种格式是*.扩展名
第二种格式是以/开头,以/*结尾
在用通配符进行匹配映射的时候,参考两个标准:
1. 谁的匹配度高匹配谁
2. *.扩展名的优先级最低
面试题:
有如下映射关系:
Servlet1 映射到 /abc/*
Servlet2 映射到/*
Servlet3 映射到/abc
Servlet4 映射到*.do
问题:
1.当请求URL为“/abc/a.html”,“/abc/*”和“/*”都匹配,哪个servlet响应?
Servlet1响应,因为/abc/*的匹配度较高
2.当请求URL为“/abc”时,“/abc/*”和“/abc”都匹配,哪个servlet响应?
Servlet3响应,因为/abc匹配度高
3.当请求URL为“/abc/a.do”,“/abc/*”和“*.do”都匹配,哪个servlet响应?
Servlet1响应,因为*.do的优先级最低
4.当请求URL为“/a.do”,“/*”和“*.do”都匹配,哪个servlet响应?
Servlet2响应,因为*.do的优先级最低
5.当请求URL为“/xxx/yyy/a.do”,“/*”和“*.do”都匹配,哪个servlet响应?
Servlet2响应,因为*.do优先级最低