Package nablarch.fw.web.handler
Class ResourceMapping
java.lang.Object
nablarch.fw.web.handler.ResourceMapping
- All Implemented Interfaces:
Handler<HttpRequest,
,HttpResponse> HttpRequestHandler
リクエストURIに応じて、リソースファイルに対するマッピングを行うリクエストハンドラ。
画像等の静的ファイルへのリクエストやフォーワードを介さないJSP画面へのアクセスは、
通常、Webサーバ・アプリケーションサーバでレスポンスを行う為、フレームワーク側で制御することができない。
このリクエストハンドラを経由させることで、これらのアクセスについても
認可を始めとする共通処理の制御下におくことができる。
マッピング先のパスには、HttpResponse.setContentPath(String)
の書式に従って、
以下の3種類のいずれかを指定することができる。
1. コンテキストクラスローダ上のリソース
2. サーブレットフォーワード(JSPを含む)
3. 内部フォーワードの実行結果
ただし、ファイルシステム上のローカルファイル(file://スキーム)は使用できない。
次の例では、特定のベースURI(/webapp/resource/)下の画像ファイルに対するリクエストを、
サーブレットコンテキスト上のリソース(/WEB-INF/resource/)を参照するようにマッピングしている。
こうすることで、これらのファイルをフレームワークの認証・認可の制御下に置くことができる。
new StaticResource("/admin/resource/", "servlet:///WEB-INF/resource/");
HTTPリクエストと、それに対するレスポンスのコンテンツパスとの対応は以下のようになる。
===========================================================================
HTTPリクエストライン コンテンツパス [コンテンツタイプ]
===========================================================================
GET /admin/resource/style.css -> servlet:///WEB-INF/resource/style.css
[text/css]
------------------------------- --------------------------------------
GET /admin/resource/js/init.js -> servlet:///WEB-INF/resource/js/init.js
[application/javascript]
===========================================================================
- See Also:
-
Constructor Summary
ConstructorDescriptionデフォルトコンストラクタ。ResourceMapping
(String baseUri, String basePath) 特定のbaseUri配下へのリクエストを静的ファイルにマッピングする リクエストハンドラを生成する。 -
Method Summary
Modifier and TypeMethodDescriptionhandle
(HttpRequest req, ExecutionContext ctx) HTTPリクエストに対する処理を実行する。setBasePath
(String basePath) マッピング先リソースパスを設定する。setBaseUri
(String baseUri) マッピング元ベースURIを設定する。
-
Constructor Details
-
ResourceMapping
特定のbaseUri配下へのリクエストを静的ファイルにマッピングする リクエストハンドラを生成する。- Parameters:
baseUri
- マッピング元ベースURIbasePath
- マッピング先リソースパス
-
ResourceMapping
public ResourceMapping()デフォルトコンストラクタ。
-
-
Method Details
-
setBaseUri
マッピング元ベースURIを設定する。- Parameters:
baseUri
- マッピング元ベースURI- Returns:
- このオブジェクト自体
-
setBasePath
マッピング先リソースパスを設定する。- Parameters:
basePath
- マッピング先リソースパス- Returns:
- このオブジェクト自体
-
handle
HTTPリクエストに対する処理を実行する。このクラスの実装では以下の処理を行う。 1. リクエストURI中のbaseUri以下の部分を取得する。 2. docRootに1.の結果を連結した文字列をコンテンツタイプとする。 3. リクエストURIの拡張子からコンテンツタイプを判定する。 4. HttpResponseを生成し、2,3の結果をそれに設定する。 5. 4の結果を返す。
- Specified by:
handle
in interfaceHandler<HttpRequest,
HttpResponse> - Specified by:
handle
in interfaceHttpRequestHandler
- Parameters:
req
- HTTPリクエストオブジェクトctx
- サーバサイド実行コンテキストオブジェクト- Returns:
- HTTPレスポンスオブジェクト
- See Also:
-