1. 多映射
一个Servlet可以配置多个url-pattern1
2
3
4
5
6
7
8
9
10
11
12
13
14<servlet>
<servlet-name>myServlet</servlet-name>
<servlet-class>ServletDemo</servlet-class>
</servlet>
<!-- 映射1 -->
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping>
<!-- 映射2 -->
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/haha</url-pattern>
</servlet-mapping>
2. 映射规则
通配映射只有以下3种,注意/aa*和/*aa这两种通配映射是不存在的,不要使用
| url-pattern | 描述 | 匹配示例 | 不匹配示例 |
|---|---|---|---|
| *.xxx | 匹配扩展名 | /aa.xxx /aa/bb.xxx |
/aaxxx |
| /* | 匹配任何路径 | /aa /aa.jsp /aa/bb/cc |
|
| /aa/* | 匹配前缀路径 | /aa /aa/bb /aa/bb/cc /aa/bb/cc.jsp |
/aabb |
优先级从高到低
- 精确匹配 /aa/bb
- 前缀匹配 /aa/*
- 任意匹配 /*
- 后缀匹配 *.xxx
示例:
- 访问
/aa/bb,会优先匹配/aa/bb,而不会匹配/aa/*和/* - 访问
/aa/cc,会优先匹配/aa/*,而不会匹配/* - 访问
/bb,会匹配/* - 访问
/aa.xxx,会匹配/*,而不会匹配*.xxx。也就是说,如果你配置了/*,其它任何后缀匹配都是没有意义的