首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同一个servlet的多个url-pattern

同一个servlet的多个url-pattern
EN

Stack Overflow用户
提问于 2012-01-25 06:42:43
回答 2查看 59.1K关注 0票数 38

我需要在两个不同的url上映射相同的servlet。我使用netbeans 7.0.1来管理我的整个项目,所以我使用它的友好界面来修改web.xml文件。netbeans创建的内容如下:

代码语言:javascript
复制
<servlet-mapping>
    <servlet-name>fred</servlet-name>
    <url-pattern>*.jsp</url-pattern>
    <url-pattern>/url</url-pattern>
</servlet-mapping>

这是由tomcat5.5读取的,不会产生任何错误,但只有第二个模式有效,而第一个模式被忽略。

谷歌我发现tomcat的正确方法是这样的:

代码语言:javascript
复制
<servlet-mapping>
    <servlet-name>fred</servlet-name>
    <url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>fred</servlet-name>
    <url-pattern>/url</url-pattern>
</servlet-mapping>

那么,我的问题是:这是tomcat中的一个bug吗?其他容器接受什么语法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-25 13:30:39

我想这更多地与容器/netbeans使用的servlet规范有关,而不是容器的问题。您的net beans似乎正在使用spec 2.5来构造servlet映射,因此您将获得

代码语言:javascript
复制
<servlet-mapping>
   <servlet-name>fred</servlet-name>
   <url-pattern>*.jsp</url-pattern>
   <url-pattern>/url</url-pattern>
</servlet-mapping>

阅读有关此here的更多信息。上面写着

以前版本的servlet模式只允许在一个筛选器mapping.For筛选器中使用一个url模式映射到多个url,这会导致不必要的整个映射子句重复。

票数 47
EN

Stack Overflow用户

发布于 2016-09-14 15:16:52

Tomcat容器将支持3种url模式:

  1. complete character sequence
  2. /*
  3. *. ext (星号表示任何字符)

建议只对一个框架使用/*

如果你使用多个框架,那么推荐使用.*

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8995353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档