前端控制器模式中的 Servlet URL 映射

3

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

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

我的问题是如何区别 / 和 /*。当我们返回视图名称时,通常在视图名称之前添加 / ,例如 /WEB-INF,那么这个请求是否也会经过 DispatcherServlet。如果不是,为什么?


1
请看这里:https://dev59.com/1mYr5IYBdhLWcg3wOX26 - Simon
1个回答

2
在JAVA EE Web应用程序中,URL映射分为3个部分:
  • 上下文路径(URL的根路径)
  • Servlet路径(激活组件的模式)
  • 信息路径(后续路径)
例如,Dispatcher映射到“/myservlet/”,具有“root”上下文。
GET /root/myservlet/info
  • /root 上下文路径
  • /myservlet servlet路径
  • /info 信息路径
“/”和“/*”将匹配之后的任何标记,但是“/”仅在未提供路径的显式映射时匹配(在这种情况下,如果存在于/myservlet/info的servlet映射)。
“/”成为路径的容器默认回退。
“/*”覆盖路径下的所有内容。如此处所述,这对于过滤器映射非常有用。

仔细阅读https://dev59.com/n2855IYBdhLWcg3wy3oc并修正或删除您错误的答案。 - BalusC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接