我正在尝试学习Spring MVC框架。调度程序 servlet 应该处理所有传入请求,我们通过以下配置实现这一点:
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
我的问题是/与/* 有何不同。当我们返回 View 名称时,我们通常会在 View 名称之前添加/前缀,例如/WEB-INF,这样该请求也会经过 DispatcherServlet。如果不是为什么?
最佳答案
在 JAVA EE Web 应用程序中,URL 映射分为 3 部分:
- 上下文路径(网址的根)
- Servlet 路径(激活组件的模式)
- 信息路径(尾随路径)
例如调度程序映射到“/myservlet/”,具有“root”上下文
获取/root/myservlet/info
- /根上下文路径
- /myservlet servlet 路径
- /info 信息路径
“/”和“/*”将匹配之后的任何标记,但“/”仅在没有明确映射的情况下才会匹配提供了路径(在本例中,如果存在/myservlet/info 的 servlet 映射)。
“/”成为路径的容器默认后备。
“/*”覆盖路径下的所有内容。如前所述here ,这对于过滤器映射非常有用。
关于spring - 前端 Controller 模式的 Servlet url 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30272236/