知識庫 / Spring / Spring MVC RSS 訂閱

Spring 中上下文路徑 vs. Servlet 路徑

Spring MVC
HongKong
8
12:30 PM · Dec 06 ,2025

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應用程序中的工作方式。

user avatar
0 位用戶收藏了這個故事!
收藏

發佈 評論

Some HTML is okay.