javaee mapping request to servlets/servlet url-pattern 配置问题

一:request url 映射到servlet的查找顺序:

1)获取匹配servelet的path,当一个请求(request)被服务器收到以后,匹配的path=request URL-context- parameters。

2)path按下面的规则顺序匹配一个servlet,匹配成功的会被用来处理对应request,不会继续后面的匹配。

1. 容器(container)会先去匹配一个精确的servlet path ,成功找到即匹配。

2.容器(container)去匹配最长的path-prefix,成功找到即匹配。

3.如果path 有拓展名(extendson(e.g. .jsp)),servlet容器 会去匹配一个servlet处理该request for the extendsion ,拓展名是path最后一个片段,在“.”符号之后。

4.上面三条没找到,container 会尝试把请求当做内容资源处理,此时如果container配置了默认的servlet,会用到它。大部分container 提供了默认的servlet serving content。


二:mappings 规范(servlet可以配置的url-pattern):

a. 一个字符串 以 ‘/’开始,以‘/*’结束

b.一个字符串 ,以'*.'开始,用来匹配有extendsion的request。

c.空字符串“”是一个特殊的url pattern ,映射到application's context root。如,"http://host:port/<context-root>/",这个例子中 path是‘/’,对应的servlet path 是“”,(这一点很特别)

d.servlet path为 ‘/’也是一个特别的url pattern ,表明该servlet是容器默认的servlet。

e.精确url,如/user/123 ,即不是表达式形式

注意:如果一个url-pattern 映射到多个servlet,容器启动会失败。


三:隐式的mappings

如果容器有一个internal jsp容器,那么*.jsp拓展映射到里面,该映射,在需要的时候会被优先处理。

下面是一些例子:


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值