【问题标题】:Asterisk(wild card match) and url-pattern星号(通配符匹配)和 url 模式
【发布时间】:2012-04-05 06:08:09
【问题描述】:

我想要一个用于特定 URL 的“显式”servlet 和一个用于处理所有其他 URL 的默认(有点像包罗万象)servlet。所以我创建了这样的 web.xml 文件:

  <servlet>
    <servlet-name>My myindex.html servlet</servlet-name>
    <servlet-class>in.shakir.web.MyIndexServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>My myindex.html servlet</servlet-name>
    <url-pattern>/myindex.html</url-pattern>
  </servlet-mapping>

  <servlet>
     <servlet-name>My all others servlet</servlet-name>
     <servlet-class>in.shakir.web.MyHandlerServlet</servlet-class>
  </servlet>
  <servlet-mapping>
     <servlet-name>My all others servlet</servlet-name>
     <url-pattern>*</url-pattern>
  </servlet-mapping>

但是它不起作用(即使是 /myindex.html,我也会收到 404 错误) 我正在使用 Tomcat 7。

但是,如果我从 web.xml 中删除第二个(默认或全部)部分,那么 myindex.html 可以正常工作。那么我的 url-pattern 有什么问题?请指教。

【问题讨论】:

    标签: java jakarta-ee servlets


    【解决方案1】:

    改变

    <url-pattern>*</url-pattern>
    

    <url-pattern>/*</url-pattern>
    

    请参阅this 了解更多信息。

    【讨论】:

    • Chandra,我刚刚阅读了那个页面,似乎使用 /* 会产生相同的效果.对吧?
    • @user1089770 / 将作为默认的 url 模式。我的意思是如果没有匹配的 url,那么这个 servlet 将被调用。但我认为 servlet 中不存在第二种情况。我不确定第二种情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 2019-03-19
    • 1970-01-01
    相关资源
    最近更新 更多