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 のユーザーと認証

推薦する

XHTML と CSS によるオブジェクト指向プログラミング

<br />XHTML と CSS がオブジェクト指向だったらよかったのに。 。太陽は北...

現在のブラウザが JavaScript でヘッドレス ブラウザであるかどうかを検出する方法

目次ヘッドレスブラウザとは何ですか?なぜ「ヘッドレス」ブラウザと呼ばれるのでしょうか?ヘッドレスブラ...

MySQLデータベース移行におけるデータ文字化けの問題を解決する

リーダーの指示のもと、Java プロジェクトを引き継ぎ、リファクタリングを行う必要がありました。同時...

HTML テーブル マークアップ チュートリアル (37): 背景画像属性 BACKGROUND

テーブル ヘッダーの背景画像を設定します。任意の GIF または JPEG 画像ファイルを使用できま...

docker のインストールが完了し、bridge-nf-call-iptables が無効であると報告される問題を解決します

Centos マシンで docker のインストールが完了したら、docker info コマンドを...

開発をスピードアップできる VueUse ライブラリ 5 つ (まとめ)

目次VueUse にはどのようなユーティリティがありますか? VueUseをVueプロジェクトにイン...

Vue で配列をクリアするいくつかの方法 (要約)

目次1. はじめに2. データを消去するいくつかの方法2.1 ref() の使用2.2 スライスの使...

Nginx 構成 80 ポート アクセス 8080 とプロジェクト名アドレス メソッド分析

Tomcatはプロジェクトにアクセスします。通常はIP + ポート + プロジェクト名です。 Ngi...

MySQL で結合を使用して SQL を最適化する方法の詳細な説明

0. 以下のテストに関連する表を準備する関連するテーブル作成ステートメントについては、https:/...

Vue で wangeditor リッチテキスト編集を使用する際の問題

wangEditor は、JavaScript と CSS に基づいて開発された Web リッチ テ...

CSSタグの表示モードの詳細な説明

ラベル表示モード(重要) divタグとspanタグ1. スタイルはまったく同じですが、ラベルが異なり...

React.cloneElement の使い方の詳しい説明

目次cloneElementの役割使用シナリオ新しい小道具を追加するプロップを変更するイベントカスタ...

docker-compose でデプロイしたときに MySQL にアクセスできなくなる問題の簡単な分析

Docker-ComposeとはCompose プロジェクトは、以前の fig プロジェクトから派生...

Windows Server 2008 のサーバー パフォーマンス監視に関するチュートリアル

次に、ログ管理、ログのアーカイブ、ログのトラブルシューティング、イベントの転送と収集のためのコンピュ...

Apache クロスドメイン リソース アクセス エラーの解決策

多くの場合、大規模および中規模の Web サイトでは、静的リソース (フォント ファイル、画像など)...