Java Jetty';是否可以使用正则表达式;什么是servlet映射?
我有一张地图Java Jetty';是否可以使用正则表达式;什么是servlet映射?,java,servlets,jetty,Java,Servlets,Jetty,我有一张地图 <servlet-mapping> <servlet-name>service</servlet-name> <url-pattern>/service/*</url-pattern> </servlet-mapping> 服务 /服务/* 但我也想要 /服务/船长 映射到主servlet <servlet-mapping> <servlet-name>master</ser
<servlet-mapping>
<servlet-name>service</servlet-name>
<url-pattern>/service/*</url-pattern>
</servlet-mapping>
服务
/服务/*
但我也想要
/服务/船长
映射到主servlet
<servlet-mapping>
<servlet-name>master</servlet-name>
<url-pattern>/service/master</url-pattern>
</servlet-mapping>
主人
/服务/船长
我认为这里存在冲突,因为调用/service/*将立即触发服务servlet。有没有一种方法可以让我在servlet映射中使用某种排除,或者可以使用regexp来执行我想要执行的操作?servlet映射始终使用最特定的匹配,因此路径
/service/master
将始终映射到master
这是映射的第一条规则:
您可以尝试使用谷歌Guice。 ServletModule.serveRegex(字符串regex,字符串…regex) 将允许您在映射中使用正则表达式
看这里你是说我的映射是正确的?我已经试过了,但是/service/master没有映射到master servletry另一个容器,例如Tomcat。我经常在Jetty上看到这样的奇怪现象。作为一种解决方法,首先尝试使用主映射(尚未测试,但我认为这可能会起作用)。@denniss-1)您使用的Jetty版本是什么?2) 您的web.xml是什么版本?在Servlet2.5之前,请求映射的规则是礼貌的建议,因此Jetty可能不符合。另外,请注意,映射是区分大小写的,因此
/service/master
应该与master匹配,而/service/master
应该与service匹配。我刚刚在Jetty 6.1.15上做了一个快速测试,效果很好。请注意,尽管McDowell关于区分大小写的评论适用,而且您在master上没有通配符,因此它匹配service/master
,但不匹配service/master/x