1. 序章

DispatcherServlet は、Springアプリケーションで重要な役割を果たし、アプリケーションに単一のエントリポイントを提供します。 一方、コンテキストパスは、エンドユーザーがアプリケーションにアクセスするURLを定義します。

このチュートリアルでは、コンテキストパスとサーブレットパスの違いについて学習します。

2. コンテキストパス

簡単に言うと、コンテキストパスは、Webアプリケーションにアクセスするための名前です。 これは、アプリケーションのルートです。 デフォルトでは、Spring Bootはルートコンテキストパス(「/」)でコンテンツを提供します。

したがって、デフォルト構成のブートアプリケーションには、次のようにアクセスできます。

http://localhost:8080/

ただし、場合によっては、アプリケーションのコンテキストを変更したいことがあります。 コンテキストパスを構成する方法は複数あり、application.propertiesはその1つです。 このファイルは、 src / main /resourcesフォルダーにあります。

application.propertiesファイルを使用して構成しましょう。

server.servlet.context-path=/demo

その結果、アプリケーションのメインページは次のようになります。

http://localhost:8080/demo

このアプリケーションを外部サーバーにデプロイする場合、この変更はアクセシビリティの問題を回避するのに役立ちます。

3. サーブレットパス

サーブレットパスは、メインのDispatcherServletのパスを表します。 DispatcherServlet は、実際の Servlet であり、HttpSerlvet基本クラスから継承します。 デフォルト値はコンテキストパスに似ています。 (「/」):

spring.mvc.servlet.path=/

以前のバージョンのBootでは、プロパティは ServerProperties クラスにあり、 server.servlet-path =/として知られていました。

2.1.xから、このプロパティは WebMvcProperties クラスに移動され、 spring.mvc.servlet.path =/という名前に変更されます。

サーブレットパスを変更してみましょう。

spring.mvc.servlet.path=/baeldung

サーブレットはサーブレットコンテキストに属しているため、コンテキストパスを変更するとサーブレットパスにも影響します。 したがって、変更後、アプリケーションサーブレットパスは http:// localhost:8080 / demo/baeldungになります。

つまり、スタイルシートが http:// localhost:8080 / demo / style.cssとして提供されていた場合、 http:// localhost:8080 / demo/baeldungとして機能するようになります。 /style.css.

通常、DispatcherServletを自分で構成することはありません。 ただし、本当に必要な場合は、カスタムDispatcherServletのパスを指定する必要があります。

4. 結論

この簡単な記事では、コンテキストパスとサーブレットパスのセマンティクスについて説明しました。 また、これらの用語が何を表しているのか、Springアプリケーションでどのように連携するのかについても見てきました。