servlet-mapping

部分转自:
http://blog.csdn.net/zhaizu/article/details/9897083
http://tianya23.blog.51cto.com/1081650/1001568


  1. 常见映射

    <servlet>
            <servlet-name>TestServlet</servlet-name>——————3
            <servlet-class>Demo.TestServlet</servlet-class>—— 4
    </servlet>
    <servlet-mapping>
            <servlet-name>TestServlet</servlet-name>——————2
            <url-pattern>/testDemo</url-pattern>———————1
    </servlet-mapping>

    访问顺序为1—>2—>3—>4,其中2和3的值必须相同。
    url-pattern 标签中的值是要在浏览器地址栏中输入的 url,可以自己命名,这个 url 访问名为 servlet-name 中值的 servlet,两个 servlet-name 标签的值必须相同,因为通过 servlet 标签中的 servlet-name 标签映射到 servlet-class 标签中的值,最终访问 servlet-class 标签中的 class。

  2. 路径url匹配规则

    • 精确匹配:以”/”开头,字母(非”*”)结尾

      比如: 
      <url-pattern>/demo/test.do</url-pattern>
          只匹配这个/demo/test.do这个url
      
    • 目录匹配:以”/”开头,”/*”结尾

      比如:
      <url-pattern>/demo/*</url-pattern>匹配前缀为demo的url
      <url-pattern>/*</url-pattern>
      
    • 扩展名匹配:以”*.”开头,扩展名结尾

       比如:
       <url-pattern>*.htm</url-pattern>匹配后缀为htm的url
      

    匹配过程:

    当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://localhost/test/aaa.html,我的应用上下文是test,容器会将http://localhost/test去掉,剩下的/aaa.html部分拿来做servlet的映射匹配。这个映射匹配过程是有顺序的,而且当有一个servlet匹配成功以后,就不会去理会剩下的servlet了
    先精确匹配,再路径匹配
    路径匹配:先最长路径匹配,再最短路径匹配
    最后是扩展名匹配。
    如果前面三条规则都没有找到一个servlet,容器会根据url选择对应的请求资源。如果应用定义了一个default servlet,则容器会将请求丢给default servlet。

More
静态文件的url映射
http://blog.csdn.net/u010045971/article/details/50843906

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值