1. 引言
DispatcherServlet
在Spring应用中扮演着重要角色,它是应用程序的单点入口。而上下文路径定义了用户最终访问应用的URL。
在本教程中,我们将学习上下文路径与Servlet路径之间的区别。
2. 上下文路径
简单来说,上下文路径是访问web应用的名称,它是应用的根目录。默认情况下,Spring Boot在根上下文路径(“/”)上提供内容。
因此,具有默认配置的任何Boot应用都可以通过以下方式访问:
http://localhost:8080/
然而,在某些情况下,我们可能希望更改应用的上下文。有多种方法来配置上下文路径,application.properties
文件就是其中之一。这个文件位于src/main/resources
文件夹中。
让我们使用application.properties
文件进行配置:
server.servlet.context-path=/demo
结果,应用的主页将变为:
http://localhost:8080/demo
当我们部署此应用到外部服务器时,这个修改有助于避免访问问题。
3. Servlet路径
Servlet路径表示主DispatcherServlet
的路径。DispatcherServlet
实际上是一个Servlet,它继承自HttpSerlvet
基类。默认值类似于上下文路径,即(“/”):**
spring.mvc.servlet.path=/
在早期的Boot版本中,这个属性在ServerProperties
类中,称为server.servlet-path=/
。
从2.1.x开始,这个属性移到了WebMvcProperties
类,并重命名为spring.mvc.servlet.path=/
。
让我们修改Servlet路径:
spring.mvc.servlet.path=/baeldung
因为Servlet属于一个servlet上下文,所以更改上下文路径也会影响Servlet路径。 修改后,应用的Servlet路径将变为http://localhost:8080/demo/baeldung.
换句话说,如果样式表以前被提供为http://localhost:8080/demo/style.css
,现在将提供为http://localhost:8080/demo/baeldung/style.css.
通常,我们不会自己配置DispatcherServlet
。但如果我们确实需要这样做,我们需要提供我们自定义的DispatcherServlet
的路径。
4. 总结
在这篇简短的文章中,我们探讨了上下文路径和Servlet路径的含义,以及它们在Spring应用中如何协同工作。