两个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。
两者对我来说几乎都是一样的。如果有任何具体区别,请告诉我?
答案 0 :(得分: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.do
都会调用servlet2
。
案例2:
<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
。