当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

<b>Servlet和Filter的url匹配url-pattern</b>[Java编程]

赞助商链接



  本文“<b>Servlet和Filter的url匹配url-pattern</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

Servlet和filter是J2EE开辟中常用的技术,利用便利,配置简单,老少皆宜.

预计大大都朋友都是直接配置用,也没有关心过具体的细节,本日碰到一个问题,上网查了servlet的标准才发现,servlet和filter中的url-pattern还是有一些文章在里面的,总结了一些东西,放出来供大家参考,免得碰到问题又要浪费时间.

1、servlet容器对url的匹配历程:

当一个恳求发送到servlet容器的时刻,容器先会将恳求的url减去当前利用上下文的途径作为servlet的映射url,比方我拜候的是http://localhost/test/aaa.html,我的利用上下文是test,容器会将http://localhost/test去掉,剩下的/aaa.html部份拿来做servlet的映射匹配.这个映射匹配历程是有次序的,并且当有一个servlet匹配成功今后,就不会去理睬剩下的servlet了(filter差别,后文会提到).其匹配法则温次序以下:

1. 切确途径匹配.例子:比方servletA 的url-pattern为 /test,servletB的url-pattern为 /* ,这个时刻,假如我拜候的url为http://localhost/test ,这个时刻容器就会先 举行切确途径匹配,发现/test恰好被servletA切确匹配,那么就去调用servletA,也不会去理睬其他的servlet了.

2. 最长途径匹配.例子:servletA的url-pattern为/test/*,而servletB的url-pattern为/test/a/*,此时拜候http://localhost/test/a时,容器会挑选途径最长的servlet来匹配,也就是这里的servletB.

3. 扩大匹配,假如url最后一段包含扩大,容器将会按照扩大挑选符合的servlet.例子:servletA的url-pattern:*.action

4. 假如前面三条法则都没有找到一个servlet,容器会按照url挑选对应的恳求资源.假如利用定义了一个default servlet,则容器会将恳求丢给default servlet(什么是default servlet?背面会讲).

按照这个法则表,就可以很清楚的知道servlet的匹配历程,所以定义servlet的时刻也要考虑url-pattern的写法,免得出错.

关于filter,不会像servlet那样只匹配一个servlet,因为filter的调集是一个链,所以只会有处理的次序差别,而不会呈现只挑选一个filter.Filter的处理次序和filter-mapping在web.xml中定义的次序相同.

2、url-pattern详解

在web.xml文件中,以下语法用于定义映射:

以”/’开首和以”/*”末尾的是用来做途径映射的.

从前缀”*.”开首的是用来做扩大映射的.

”是用来定义default servlet映射的.

剩下的都是用来定义具体映射的.比方: /aa/bb/cc.action

所以,为什么定义”/*.action”这样一个看起来很正常的匹配会错?因为这个匹配即属于途径映射,也属于扩大映射,招致容器无法判断.


  以上是“<b>Servlet和Filter的url匹配url-pattern</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .