tomcat の web.xml を構成する場合、サーブレットは比較的重要な問題です。ここでは、サーブレットのいくつかの問題点について説明します。
1 サーブレット
1.1 完全一致
コード例: point_down: <サーブレットマッピング> <サーブレット名>MyServlet</サーブレット名> <url-pattern>/kata/detail.html</url-pattern> <url-pattern>/demo.html</url-pattern> <url-pattern>/テーブル</url-pattern> </サーブレットマッピング> ブラウザに次のURLを入力すると、サーブレットに一致します。 知らせ: さらに、上記のURLの後に、一致する任意のクエリ条件を続けることができます。 リクエスト 1.2 パスマッチング 「/」文字で始まり「/*」で終わる文字列がパスのマッチングに使用されます。 コード例: point_down: <サーブレットマッピング> <サーブレット名>MyServlet</サーブレット名> <url-pattern>*.jsp</url-pattern> <url-pattern>*.アクション</url-pattern> </サーブレットマッピング> パスは /user/ で始まり、パスの残りの部分は何でもかまいません。たとえば、次の URL が一致します。 1.3 サフィックスマッチング 「*.」で始まる文字列はサフィックスの一致に使用されます。 コード例: point_down: <サーブレットマッピング> <サーブレット名>MyServlet</サーブレット名> <url-pattern>*.jsp</url-pattern> <url-pattern>*.アクション</url-pattern> </サーブレットマッピング> すると、拡張子がjspまたはactionのURLリクエストが一致します。たとえば、次のURLが一致します。 注意: パスとサフィックスのマッチングは同時に設定できません 注意: パスと拡張子のマッチングは、次の3つのように同時に設定することはできません。 いくつかの例: point_down:、理解できない場合は、この記事の第3章を読んでください 2 URLパターンにおける
まずは また 3 URLパターンの優先順位の問題 URL が複数のサーブレットの一致ルールに一致する場合、対応するサーブレットは「正確なパス > 最長パス > サフィックスの一致」の優先順位に従って一致します。 例 1: たとえば、servletA の URL パターンは /test で、servletB の URL パターンは /* です。このとき、アクセスする URL が http://localhost/test の場合、コンテナは最初に正確なパスの一致を実行し、/test が servletA と完全に一致することを検出します。この場合、servletB を気にせずに servletA が呼び出されます。 例 2: たとえば、servletA の URL パターンが /test/で、servletB の URL パターンが /test/a/の場合、http://localhost/test/a にアクセスすると、コンテナーは一致するパスが最も長いサーブレット (ここでは servletB) を選択します。 例 3: たとえば、servletA の URL パターンは *.action で、servletB の URL パターンは すると疑問が生じます。 理由は非常に簡単です。tomcat/conf/web.xmlに次の設定があります。 <サーブレットマッピング> <サーブレット名>デフォルト</サーブレット名> <url-パターン>/</url-パターン> </サーブレットマッピング> <!-- JSP サーブレットのマッピング --> <サーブレットマッピング> <サーブレット名>jsp</サーブレット名> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspx</url-pattern> </サーブレットマッピング> :point_up_2: 4 ルートパス 問題に気付いたかもしれません。つまり、URL パターンが /* の場合、http://localhost:8080/ にアクセスすると 404 が返されますが、http://localhost:8080/index.html にアクセスすると正常に動作します (もちろん、前提として、Spring コンテナーで まず、URL のルート ディレクトリ、つまり / (http://localhost:8080/ など) が何を意味するのかを明確にする必要があります。実験を通じて、/ は非常に特殊であることがわかりました。/* の URL パターンには一致しますが、/ の URL パターンには一致しません。 Tomcat では、/ はデフォルトで defaultservlet に一致しますが、その優先順位はパスの一致よりも低くなります。そのため、サーブレットの URL パターンが /* の場合、/ は defaultservlet ではなく、このサーブレットに一致します。 Tomcat ソース コードにある次のスニペットは私の見解を裏付けています: point_down:
:point_up_2:上記は 翻訳:point_down: リクエスト URI がディレクトリを指している場合、デフォルトのサーブレットはそのディレクトリ内の「ウェルカム ファイル」を検索し、存在する場合は対応するリソース URI を検索して表示します。ウェルカム ファイルが存在しない場合は、デフォルトのサーブレットは、リスト設定の値に応じて、ディレクトリ リストを提供するか (カスタマイズ方法については、デフォルトのサーブレット構成を参照)、404 ステータスを返します。 / が welcome ページにリダイレクトされる理由は、 要約する Tomcat でサーブレット URL パターンを構成する際の問題の詳細な説明については、これで終わりです。Tomcat 構成サーブレットに関する関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: フロントエンドは画像を遅延ロードする方法を知っている必要があります(3つの方法)
>>: mysql-8.0.19-winx64 のインストール中に問題が発生しました: ディレクトリ 'xxxx\Database\' を作成できません
目次1. システム監視2. ファイル操作3. ネットワーク通信4. システム管理仕事で必要なLinu...
プロセス分析の実装(1)繰り返して電話をかけるには?答え: 関数をカプセル化して一度だけ呼び出すコー...
1. IPアドレスを設定する前に、まずifconfigを使用してネットワークカード情報を表示し、ネッ...
目次隠れた問題適応高さのソリューションまず解決策を提示してください。Vueスタックが必要な学生はvu...
この記事では、MySQL ユーザー権限管理の例について説明します。ご参考までに、詳細は以下の通りです...
効果(ソースコードは最後にあります): 成し遂げる: 1. タグを定義します。 <h1>...
この記事では、例を使用して、MySQL データベースの最適化のためのテーブルおよびデータベース シャ...
クリックされたボタンには赤い画像スタイルを実装し、選択されていない他のボタンには灰色の画像スタイルを...
1. シナリオの説明:私たちの環境ではマイクロサービスを使用しています。各プログラムには個別のプロセ...
1. 概要ユーザーは、アクセスする Web アプリケーションがインタラクティブでスムーズに実行される...
目次Refsとは何か1. 文字列型参照2. コールバック参照React.createRef() 4....
目次1. 公式の足場を使って構築する2. プロジェクトディレクトリ分析3. TypeScript の...
目次序文Lua スクリプトnignx.conf の設定Dockerfileの設定序文データベースやそ...
序文注: テストデータベースのバージョンはMySQL 8.0ですテストデータ: テーブルzqs(id...
VM Ware 仮想マシン CentOS の時刻は、次の図に示すように、現地時間と一致しません。おそ...