星号(外卡匹配)和网址模式

时间:2012-04-05 06:08:10

标签: java java-ee servlets

我希望有一个特定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工作正常。所以我的网址模式有什么问题?请指教。

1 个答案:

答案 0 :(得分:3)

更改

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

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

有关详细信息,请参阅this