4

サーブレットのコンテキスト ルートとして複数のエントリを持つことは許されますか?

たとえば、すべての Sun の例では/catalog、コンテキスト ルートとして単一または類似のものを使用していますが、それも/catalog/furniture同様でしょうか?

サーブレット 2.4 仕様は、ここでは具体的ではありません。

Context PathServletContext :このサーブレットが含まれる に関連付けられたパス接頭辞。このコンテキストが、Web サーバーの URL ネーム スペースのベースにある「デフォルト」のコンテキストである場合、このパスは空の文字列になります。それ以外の場合、コンテキストがサーバーの名前空間のルートにない場合、パスは「/」文字で始まりますが、「/」文字で終わりません。

4

4 に答える 4

2

サーブレットに複数のコンテキスト ルートを与えることはできません。server.xmlただし、次のように異なる名前で動的に変更できます

<web-uri>Project.war</web-uri>
<context-root>myproj</context-root>

プロジェクト コンテキスト ルートを異なる名前で構成できますが、1 つの名前にする必要があります。

デフォルトでは、 request オブジェクトを使用して contextPath を呼び出すとreq.getContextPath();、デフォルトでスラッシュ (/) as で取得されます/myproj

コンテキスト ルートを静的から動的に変更する詳細については、こちらを確認してください

于 2012-02-14T13:36:58.953 に答える
1

はい。ただの前置詞です。「/」で始まる必要があり、「/」でない限り「/」で終わることはできません。内側のスラッシュは許可されています。

于 2009-11-28T18:45:44.943 に答える
0

たとえば、すべての Sun の例では、単一の「/catalog」などをコンテキスト ルートとして使用していますが、「/catalog/furniture」も使用できますか?

あなたの web.xml で、「catalog/ 」と「catalog/furniture/」を同じサーブレットにマップすることを提案していますか? ポイントは何ですか?サーブレット エンジンは、これらの要求の両方を同じサーブレットにルーティングすると思います。

2 つの WAR ファイルがあり、1 つは catalog.war という名前で、もう 1 つは別の名前で、両方がすべての要求を同じサーブレットにルーティングする必要がある場合は、そのための .class ファイルが必要です。両方の WAR ファイルのサーブレット、または何か別のコンテキストのルート サーブレットを作成して、すべての要求を catalog.war ルート サーブレットにリダイレクトする必要があります。

正確に何を考えているのか、もう少し明確にできますか?あなたが達成したいことは少し混乱していると思います。

于 2009-11-28T18:50:54.523 に答える
-1

いいえ。コンテキスト ルート パスにスラッシュを使用することはできません。

ただし、"/catalog" のようなコンテキスト ルートでも同じ効果が得られます。すべての静的ファイルと JSP ファイルを WAR の「/furniture」の下に配置し、それに応じてサーブレットのマップを追加するだけです。

于 2009-11-28T20:45:05.683 に答える