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

推薦する

1 分で Nginx のバージョンをスムーズにアップグレードおよびロールバックする方法

今日は、企業の実際の本番環境でよく遭遇する、Nginx を新しいバージョンにアップグレードし、古いバ...

Windows プラットフォーム構成 5.7 バージョン + MySQL データベース サービス

ルートユーザーのパスワードを初期化するプロセスと、よくある2つの問題の解決策が含まれています。 1....

アバター変更機能を実装するJavaScript

この記事では、アバター変更機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...

Linux の Makefile とは何ですか? どのように機能しますか?

この便利なツールでプログラムをより効率的に実行およびコンパイルしますMakefile は自動コンパイ...

MySQL 完全折りたたみクエリ正規マッチングの詳細な説明

概要前の章では、クエリのフィルター条件について学習しました。MySQL では、like % ワイルド...

Windows Server 2016 に Oracle をインストールする方法

1. Oracle をインストールします。インターネット上には Oracle のインストール手順が多...

入力ボックスの値を取得する方法のReactの例

入力ボックスの値を取得する複数の方法最初の方法は、制御されていないコンポーネントの取得です2番目の方...

Docker を使用して pypi プライベート リポジトリを構築する方法

1. 建設1. htpasswd.txtファイルを準備するファイルには、パッケージを倉庫にアップロー...

CentOS に Memcached と PHP Memcached 拡張機能をインストールする

高性能分散メモリオブジェクトキャッシュシステムMemcachedについては、別の記事「Windows...

概要ページでのフロートとクリアフロート

1. フロート: 主な目的は、テキストを画像の周囲に折り返す効果を実現することです。また、複数列レイ...

JavaScript での正規表現の使用について詳しく学ぶ

目次1. 正規表現とは何か1. 正規表現の特徴2. 正規表現の使用2. 正規表現における特殊文字1....

JTAを実装するためにAtomikosと組み合わせたTomcatについて

最近、プロジェクトは環境を切り替え、WebLogic を Tomcat に置き換えました。途中で発生...

VMware に CentOS7 をインストールし (静的 IP アドレスを設定)、Docker コンテナ経由で mySql データベースをインストールする (非常に詳細なチュートリアル)

2 年生から、これらのインストールと設定の仕方を尋ねられました。簡単なチュートリアルを作成し、ここ...

Layuiテーブルは指定された行のラジオボタンを選択し、その行の実装コードまでスクロールします。

layui テーブルには複数行のデータがあります。外部入力コンテンツを通じて、指定された行を見つけ...