2

我正在学习 Spring MVC 。

在 web.xml 中配置 servlet 映射。

谁能说出它们之间的区别

<servlet-name>login</servlet-name>
<url-pattern>/login/</url-pattern>

<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>

<servlet-name>login</servlet-name>
<url-pattern>/</url-pattern>

<servlet-name>login</servlet-name>
<url-pattern>/*</url-pattern>

<servlet-name>login</servlet-name>
<url-pattern>/*.do</url-pattern>

也许更多...

我真的有必要知道,这样一个新的servlet就不会被其他的拦截。

4

2 回答 2

2
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>

这是精确的 url 模式,只有当 url 是这样的时候才会调用这个 servletsomeThing.com/login

<servlet-name>login</servlet-name>
<url-pattern>/*</url-pattern>

这是目录 url 模式。So /someStringor /someOtherStringor/some/someOther将调用相同的loginservlet。

<servlet-name>login</servlet-name>
<url-pattern>/*.do</url-pattern>

这是扩展 url 模式。任何以 as 为后缀的内容.do都将映射到此。例如/someUrl.do,或/some/someOther.do将调用loginservlet。

于 2013-07-09T08:27:08.647 回答
-1

这看起来很奇怪,你有这个

<servlet-name>login</servlet-name>
<url-pattern>/*</url-pattern>

这就是你所需要的,其余的映射都是目空一切的。但是调用你的 spring servlet login 有点奇怪。通常你会称它为 spring-servlet 或类似的,然后一切都映射到那个 servlet,并且特定的请求映射由不同的控制器处理 - 你可以在控制器方法上使用 RequestMappign 注释。

于 2013-07-09T08:08:17.193 回答