一、配置路径的写法
在web.xml文件中为servlet配置url时除了用某些明确的字符如/abc来精准匹配对应的servlet还可以使用通配符*,通配符有两种放置位置
1、以扩展名匹配的形式*.xx,例如*.action,
2、以路径匹配的形式:/*(会匹配当前目录所有除用精准匹配的servlet)
示例:
精准匹配:
路径匹配:
扩展名匹配:
二、匹配规则
在这三种路径配置方式中有不同的优先级,在匹配时按优先级匹配。首先精准匹配的优先级最高,其次是路径匹配,最后是扩展名匹配。
示例:
1、精准匹配和路径匹配对比
上图路径中servlet03使用的是精准匹配,servlet02使用的是路径匹配,按通配符的定义来说servlet02的路径中包含了servlet03的路径,访问servlet03的结果应是访问servlet02的结果,但是servlet03是精准匹配优先级比servlet02的路径匹配高所以访问servlet03的结果就是访问的servlet03
结果如下(所示的servlet运行结果都是输出相应的servlet名称)
2、路径匹配与扩展名匹配对比
上图路径中servlet02是匹配路径,servlet04是扩展名路径,按定义servlet02的路径包含了servlet04的路径,所以在访问servlet04的时候访问的应该是servlet02,因为扩展名匹配的优先级更低所以结果就应当是访问的servlet02
结果如下(所示的servlet运行结果都是输出相应的servlet名称)
从上述两个例子可以很直观体会到这三种路径的优先级差别
注意:通配符配置路径不允许路径匹配和扩展名匹配混用,如/abc/*.do,这种形式在配置中是无法解析的