コンテキストパスとSpringのサーブレットパス
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アプリケーションでどのように連携するのかについても見てきました。