Servlet url-pattern

1. 多映射

一个Servlet可以配置多个url-pattern

1
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。也就是说,如果你配置了/*,其它任何后缀匹配都是没有意义的
panchaoxin wechat
关注我的公众号
支持一下