1. 簡介
<em >DispatcherServlet</em> 在 Spring 應用中起着至關重要的作用,它為應用程序提供了一個單一的入口點。而上下文路徑則定義了用户訪問應用程序的 URL。
在本教程中,我們將學習上下文路徑和 servlet 路徑之間的區別。
2. 應用上下文路徑 (Context Path)
簡單來説,應用上下文路徑是用於訪問 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應用程序中的工作方式。