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>

 

posted on 2020-06-16 11:18  LVowe  阅读(672)  评论(0编辑  收藏  举报