Webアプリケーションにおけるコンテキストパスの設定の詳細な説明

Webアプリケーションにおけるコンテキストパスの設定の詳細な説明

URL: http://hostname.com/contextPath/servletPath/pathInfo

桟橋

contextPath が指定されていない場合は、デフォルトでルート コンテキストが使用され、ルート コンテキストのパスは "/" になります。

戦争名.戦争

XML IoC ファイルなし:

  • WAR ファイル名が myapp.war の場合、コンテキスト パスは /myapp になります。
  • WAR ファイル名が ROOT.war の場合、コンテキスト パスは次のようになります: /;
  • WAR ファイル名が ROOT-foobar.war の場合、コンテキスト パスは / で、仮想ホストは foobar です。

WEB-INF/jetty-web.xml

<configureclass="org.eclipse.jetty.webapp.WebAppContext"> を設定します。
  <Setname="contextPath">/テスト</Set>
  ...
</構成>

トムキャット

個々の <context> 要素は、さまざまな方法で定義できます。

  • Web アプリケーションの /META-INF/context.xml ファイルで定義されます。ホストの copyXML 属性が true の場合、context.xml ファイルは $CATALINA_BASE/conf/[enginename]/[hostname] ディレクトリにコピーされ、名前が変更されます。命名規則は、/META-INF/context.xml セクションの説明を参照します。
  • XML ファイルを $CATALINA_BASE/conf/[enginename]/[hostname] ディレクトリに直接配置します。ファイル名の指定と内容は、META-INF/context.xml セクションの説明を参照してください。このファイルは /META-INF/context.xml よりも優先度が高くなります。
  • Tomcat サーバーの conf/server.xml ファイルの <Host> 要素に <Context> 要素を定義します。

META-INF/context.xml

コンテキスト名、コンテキスト パス、コンテキスト バージョン、およびベース ファイル名の間には密接な関係があります。

  • コンテキストバージョンがない場合、コンテキスト名とコンテキスト パスは同じになります。
  • contextpath が空の文字列の場合、ベース名は ROOT になります。
  • contextpath が空の文字列でない場合、ベース名 = コンテキスト パスとなり、最初の / 文字が削除され、/ 文字が # 文字に置き換えられます。

例えば:

コンテキストパスコンテキストバージョンコンテキスト名ベースファイル名ファイル名の例(.xml、.war、ディレクトリ)
/ フーなし/ フーフーfoo.xml、foo.war、foo
/foo/バーなし/foo/バーフー#バーfoo#bar.xml、foo#bar.war、foo#bar
空の文字列なし空の文字列ROOT.xml、ROOT.war、ROOT
/ フー42 /foo##42フー##42 foo##42.xml、foo##42.war、foo##42
/foo/バー42 /foo/バー##42フー#バー#42 foo#bar##42.xml、foo#bar##42.war、foo#bar##42
空の文字列42 ##42ルート##42 ROOT##42.xml、ROOT##42.war、ROOT##42

サーバー.xml

conf/server.xml ファイルに <context> 要素を追加することはお勧めしません。このファイルは Tomcat を再起動することによってのみ再読み込みできるため、他の WebAPP の通常の使用に影響します。

デフォルトの context.xml

Tomcat には、すべてのアプリケーションに適用されるデフォルトのコンテキスト要素がありますが、その優先順位も最も低く、すべての構成はアプリケーションによって上書きされる可能性があります。

デフォルトの context.xml ファイルは 2 つあります。

  • 1 つは $CATALINA_BASE/conf/context.xml です。このコンテキスト要素の情報は、すべてのアプリケーションによって読み込まれます。
  • 1 つは $CATELINA_BASE/conf/[enginename]/[hostname]/context.xml.default です。この <context> 要素の情報は、この仮想ホスト内のすべてのアプリケーションによって読み込まれます。

Web アプリケーションでのコンテキスト パスの設定に関するこの記事はこれで終わりです。Web アプリケーションでのコンテキスト パスの設定の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Springcloud ゲートウェイはコンテキストパス操作を設定します
  • 一時パスを取得するための getServletContext().getRealPath に関する Spring Boot 組み込み Tomcat の問題を分析する
  • Springboot 2.x での server.servlet.context-path の使用に関する詳細な説明
  • JavaScript における ${pageContext.request.contextPath} 値の問題と解決方法

<<:  vue3.0プロジェクトアーキテクチャを段階的に構築する方法を教えます

>>:  MySQL シリーズ 6 のユーザーと認証

推薦する

MySQL の current_timestamp の落とし穴とその解決策を共有する

目次MySQL の current_timestamp の落とし穴エラーを報告する私の解決策mysq...

Nginx ログ管理の概要

Nginx ログの説明アクセス ログを通じて、ユーザーの地理的起源、ジャンプ元、使用端末、特定の U...

MySQL で UTF-8 エンコーディングを使用しないのはなぜですか?

MySQL UTF-8 エンコーディングMySQL は 2003 年のバージョン 4.1 から U...

webpackが静的リソースキャッシュを実装する方法

目次導入複数の異なるハッシュを区別するハッシュチャンクハッシュコンテンツハッシュjs キャッシュの実...

フィルターと固定間の競合の原因と解決策の詳細な説明

問題の説明body内でfilter属性を使用すると、 fixed要素の位置が不正確になります。つまり...

Vue-routerルーティングの使い方

目次1. 説明2. インストール3. テスト1. 説明Vue Router は、Vue.js の公式...

mysql 結合クエリ (左結合、右結合、内部結合)

1. MySQLの一般的な接続INNER JOIN (内部結合、または等価結合): 2 つのテーブ...

Linux カーネルの探究: Kconfig の秘密

Linux 構成/ビルド システムがどのように機能するかを深く理解します。 Linux カーネル構成...

MySQL の遅いクエリの落とし穴

目次1. 遅いクエリ構成1-1. スロークエリを有効にする2. 遅いクエリSQLの分析を説明する3....

jQueryはスライディングタブを実装する

この記事では、スライドタブを実装するためのjQueryの具体的なコードを参考までに紹介します。具体的...

Dockerは終了状態で起動します

docker run後、ステータスは常にExitedになります解決:パラメータを追加: -it do...

VMware仮想マシンの起動時に黒い画面が表示される問題を解決する

# VMware ハードディスクの起動優先順位を調整するステップ 1: 電源をオンにすると、BIOS...

この記事ではCSSの組み合わせセレクターの使い方を説明します

CSS 組み合わせセレクターには、単純なセレクターのさまざまな組み合わせが含まれます。 CSS3 に...

中国語ウェブコンテンツを紹介する10の経験

<br /> テキスト、シンボル、リンクの 3 つの側面に焦点を当て、主に中国語で、私の...

DockerはPruneコマンドを使用してnoneイメージをクリーンアップします

目次無イメージの創造と混乱Noneオブジェクトをクリーンアップする方法トリムミラーコンテナで使用され...