• 検索結果がありません。

URL パターンのマッピング処理

JSP 2.0,2.1 JSP ページ ISO-8859-1

2.18  URL グループ単位での同時実行スレッド数の制 御

2.18.2  URL パターンのマッピング処理

同時実行スレッド数制御で制御できる URL,および URL パターンに指定した URL とリクエスト URL と のマッピングの順序について説明します。また,welcome ファイルに対して URL パターンを設定してい る場合についても説明します。

(1) 同時実行スレッド数制御で制御できる URL

URL グループ単位での同時実行スレッド数制御で制御できる URL とは,RFC 2616 で定義されているリ クエスト URI を指します。URL グループ単位での同時実行スレッド数制御で制御できる URL は,リクエ スト URI のスキーム,ホスト,ポート,およびクエリ文字列を含みません。

URL グループ単位での同時実行スレッド数制御で制御できる URL の例を次に示します。

受信した HTTP リクエストのリクエスト URI:

http://localhost/webapp/index.html?id=0001

URL グループ単位の同時実行スレッド数制御で使用する部分:

/webapp/index.html

(2) マッピングの順序

リクエスト URL は,次の 1.〜3.の順序でマッピングされます。なお,マッピングの順序は,Servlet 仕様 のサーブレットマッピングの適用順序と同じです。

1. 完全一致

リクエスト URL と URL パターンが完全に一致する場合,一致した URL パターンが適用されます。

2. プリフィックス一致

リクエスト URL とプリフィックスが一致し,さらに,リクエスト URL とできるだけ長く文字列が一致 する URL パターンが適用されます。

3. 拡張子一致

リクエスト URL と拡張子が一致する場合,一致した URL パターンが適用されます。

なお,上記の 1.〜3.に一致しない場合は,URL グループ単位の同時実行スレッド数制御の対象にはなりま せん。このようなリクエスト URL は,Web アプリケーション単位の同時実行スレッド数制御の対象にな ります。

次に示す URL パターンを使用して,URL のマッピングの例を説明します。

表 2‒56 URL パターンの例

URL パターン URL パターンに対応する URL グループ

/foo/bar Control1

/foo/* Control2

/foo/bar/* Control3

*.do Control4

マッピング例 1:リクエスト URL が「/foo/bar」の場合

Control1 の URL パターンと完全一致するため,Control1 に振り分けられます。

マッピング例 2:リクエスト URL が「/foo/bb」の場合

完全一致する URL パターンがないため,プリフィックスが一致する Control2 に振り分けられます。

マッピング例 3:リクエスト URL が「/foo/aa.do」の場合 この場合,Control2 と Control4 で次の個所が一致します。

• プリフィックス「/foo」が Control2 と一致します。

• 拡張子「.do」が Control4 と一致します。

マッピング順序では,拡張子一致よりプリフィックス一致が優先されるため,Control2 に振り分けら れます。

マッピング例 4:リクエスト URL が「/foo/bar/」の場合

この場合,Control2 と Control3 でそれぞれプリフィックスが一致します。

• プリフィックス「/foo」が Control2 と一致します。

• プリフィックス「/foo/bar」が Control3 と一致します。

より長い文字列で一致する Control3 に振り分けられます。

マッピング例 5:リクエスト URL が「/foo/bar/action.do」の場合 この場合,Control2,Control3,Control4 で次の個所が一致します。

• プリフィックス「/foo」が Control2 と一致します。

• プリフィックス「/foo/bar」が Control3 と一致します。

• 拡張子「.do」が Control4 と一致します。

マッピング順序では拡張子一致よりプリフィックス一致が優先され,さらにより長い文字列が一致する URL パターンが優先されるので,Control3 に振り分けられます。

マッピング例 6:リクエスト URL が「/context/fo」の場合

該当する URL パターンがないため,Web アプリケーション単位での同時実行スレッド制御として扱わ れます。

マッピング例 7:リクエスト URL が「/action.do」の場合

Control4 と拡張子が一致するため,Control4 に振り分けられます。

マッピング例 8:リクエスト URL が「/boo/action.do」の場合 Control4 と拡張子が一致するため,Control4 に振り分けられます。

(3) welcome ファイルに URL パターンを設定しているときの処理の流れ

welcome ファイルに URL パターンを設定しているときの処理の流れについて,次の図で説明します。こ の図の例では,Web アプリケーションのコンテキストルートは context とし,welcome ファイルは web.xml で/index.html が設定されているものとします。また,URL パターンと URL グループ単位での 同時実行スレッド数制御の定義名は次のとおりとします。

• URL パターン:/index.html

• URL グループ単位での同時実行スレッド数制御の定義名:Control1

図 2‒22 welcome ファイルに URL パターンを設定する場合の例

図の流れについて次に説明します。

1. クライアントは http://localhost/context/にリクエストを送信する。

2. J2EE サーバでは,web.xml に設定された welcome ファイルに対して再度クライアントにアクセスし てもらうため,HTTP ステータスコード 302 を返す。また,Location ヘッダに http://localhost/

context/index.html を含める。

3. HTTP レスポンスを受信したクライアントは,Location ヘッダの値(http://localhost/context/

index.html)にリクエストを送信する。

4. 該当する Web アプリケーションのリクエストが/index.html なので,Control1 の URL グループ単位 の同時実行スレッド数制御の制御対象となる。リクエスト処理終了後,クライアントに対してレスポン スとして index.html を送信する。

2.18.3 同時実行スレッド数の制御に必要なパラメタ(URL グループ単

Outline

関連したドキュメント