url-pattern的配置方式有三种:
1.完全路径匹配:以 '/' 开始
例: /ServletDemo1 , /aaa/ServletDemo2 , /aa/bb/ServletDemo3
2.目录匹配:以 '/' 开始 需要以 '*'结束
例: /* (通常应用于首页,无论访问任何都自动往首页跳转) , /b/* (代表访问b目录下的所有东西都是和b目录内容一样 '*' 广泛应用于404页面) , /aaa/bbb/*
3.扩展名匹配:不能以 '/' 开始,不能以 '*' 结束
例: *.do , .action , .jsp , *.jpg
错误写法: /*.do
4.默认路径: '/'
注意:
优先级 完全 > 目录 > 扩展名 ,一个路径可以配置访问多个资源, 以优先级高的为主
例:
<servlet> <servlet-name>hello</servlet-name> <servlet-class>com.HelloServletOne</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/h</url-pattern> </servlet-mapping> <servlet> <servlet-name>hello</servlet-name> <servlet-class>com.HelloServletTwo</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>hello</servlet-name> <servlet-class>com.HelloServletThree</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
以上访问 hello 优先 <url-pattern>/h</url-pattern> <servlet-class>com.HelloServletTwo</servlet-class>
如果访问 aaa.do 优先 <url-pattern>/*</url-pattern> <servlet-class>com.HelloServletTwo</servlet-class>