论坛首页 Java企业应用论坛

Servlet,Filter的url-pattern详解

浏览 32739 次
该帖已经被评为良好帖
作者 正文
   发表时间:2006-12-17  
zhangqidi 写道
仔细看了一下规范 SRV11<br />
<br />
猜测可能是这样(没有测试,请指正错误):<br />
<br />
<ul>
    <li>通配符*只在前三种类型中有用。在精确匹配类型中,*没有任何特殊含义(或者做为一个配置错误?)</li>
</ul>
<ul>
    <li>楼主说的那个例子(/*.action)的问题,按照定义,肯定不属于前三种任何一种类型。注意第一种类型的&ldquo;and&rdquo;逻辑。</li>
    <li>究竟什么是一个extension类型?原文中对extension的定义是:最后一个&ldquo;.&quot;字符后面的部分中的最后一个分段(fragment)</li>
</ul>
<br />
<br />
如果包含了*,那就不会做为一个精确匹配的条件了。

正是因为/*.action属于一个比较模糊的范畴(自己推测的),所以设置这样一个urlparttern才会报错。

至于extension类型,原文有两个说法,其实也是一样的。

srv11中提到:
An extension is defined as the part of the last segment after the last ’.’ character.

ser12中提到:
A string beginning with a ‘*.’ prefix is used as an extension mapping.

只是两者针对角度不同,srv11是针对如何来映射一个url而讲的。srv12是针对配置来讲的。
0 请登录后投票
   发表时间:2006-12-17  
简单的说,它不支持ant-style的path mapping, 比如/applicationContext*.xml ,/mymodule.*.action之类的,比较让人气馁。
0 请登录后投票
   发表时间:2006-12-18  
江南白衣 写道
简单的说,它不支持ant-style的path mapping, 比如/applicationContext*.xml ,/mymodule.*.action之类的,比较让人气馁。



是啊.有好多人碰到这个问题.
所以现在我用urlrewrite来做这个事情.
0 请登录后投票
   发表时间:2006-12-18  
受益匪浅
0 请登录后投票
   发表时间:2006-12-20  
yyjun 写道
好文章,如果确实存在”/*.action”这样一个匹配,在url-pattern里应该怎么定义吗??

是不是应该”/**.action"这样写
0 请登录后投票
   发表时间:2006-12-21  
yyjun 写道
好文章,如果确实存在”/*.action”这样一个匹配,在url-pattern里应该怎么定义吗??

可以自己写个filter/servlet去实现这样的匹配功能,目前servlet规范还不支持这样的功能。
0 请登录后投票
   发表时间:2007-05-17  
受益匪浅,以前一直都不知道,原来有精确匹配,路径匹配,扩展名匹配之分,更不知道原来精确匹配是最优先的.
0 请登录后投票
   发表时间:2007-05-17  
是啊,感觉servlet的匹配功能太弱了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics