1

两个 URL 映射有什么区别: /* 和 / ?

<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DefaultServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

阅读规格后我的理解是:

模式 /* 将强制所有内容通过MyServlet.
模式 / 将成为DefaultServlet应用程序中的默认 servlet。

两者对我来说几乎意味着相同。请让我知道是否有任何具体区别?

4

1 回答 1

0

感谢您的链接,通过它们我已经编译了这个答案。让我们看一个样本web.xml

情况1:

<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>servlet2</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
`

在这种情况下,所有的请求/context/,都会调用。/context/anything/context/sample.doservlet2

案例二:

<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>servlet2</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
`

在这种情况下,请求类似于/context//context/anything调用servlet2/context/sample.do将调用servlet1

于 2013-03-28T14:26:06.460 回答