前控制器模式的Servlet URL映射

时间:2015-05-16 05:39:05

标签: spring spring-mvc servlets

我正在尝试学习spring MVC框架。 Dispatcher servlet假设处理所有传入的请求,我们通过以下配置实现:

<servlet-mapping>
  <servlet-name>dispatcher</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>  

我的问题是如何/与/ *不同。当我们返回视图名称时,我们通常在/ WEB-INF之类的视图名称之前/前缀,因此该请求也将通过DispatcherServlet。如果不是为什么?

1 个答案:

答案 0 :(得分:1)

在JAVA EE Web应用程序中,URL映射有3个部分:

  • 上下文路径(您的网址的根目录)
  • Servlet路径(激活组件的模式)
  • 信息路径(尾随路径)

E.g。 Dispatcher映射到&#34; / myservlet /&#34;,使用&#34; root&#34;上下文

GET / root / myservlet / info

  • / root context path
  • / myservlet servlet path
  • / info info path

&#34;的 / &#34;和&#34; / * &#34;之后将匹配任何令牌,但&#34; / &#34;只有在没有提供路径的显式映射时才会匹配(在这种情况下,如果有/ myservlet / info的servlet映射)。

&#34;的 / &#34;成为路径的容器默认回退

&#34;的 / * &#34; 会覆盖路径下的所有内容。如上所述here,这对过滤器映射非常有用。