Class CGIKit::RequestHandler
In: docs/rdoc_ja.rb
Parent: Object

RequestHandlerは、HTTPリクエストを様々な処理に割り振る抽象クラスです。 デフォルトでは次のリクエストハンドラが使われます。

ComponentRequestHandler:コンポーネントアクションを扱うハンドラ
DirectActionRequestHandler:ダイレクトアクションを扱うハンドラ
ResourceRequestHandler:リソースを表示するハンドラ

どのリクエストハンドラが使われるかは、 URLに含まれるリクエストハンドラキーによって決まります。 リクエストハンドラキーはアプリケーションパスの次のパスの文字 (‘c’, ‘d’ など) です。

リクエストハンドラの作成

リクエストハンドラを作るには、RequestHandlerのサブクラスを作って handle_request() をオーバーライドします。 あとはそのサブクラスを起動スクリプトなどでApplicationに登録します。

例) キーとサブクラスを登録する

 app.register_request_handler('encore', EncoreRequestHandler)

 # EncoreRequestHandler#request_handler_key を定義しておけばこれでも可
 EncoreRequestHandler.register(app)

Methods

Included Modules

Logging

Public Class methods

Public Instance methods

element のメソッドを次の順に実行します。

See Also: transaction, take_values_from_request, invoke_action

Applicationオブジェクトを返します。

アプリケーションのURLを生成します。 is_secure が真であれば https:// から始まるURLを、 偽であれば / から始まるURLを生成します。 port を指定するとポート番号をURLに含めます。

See Also: url

request からコンテキストIDを取得します。

See Also: session_id

リクエストを処理します。 サブクラスではこのメソッドを必ずオーバーライドしてください。

このクラスでは、 request からセッションIDとコンテキストIDを 解析し、request にセットする部分のみ実装してあります。 サブクラスで super すると便利です。

element のメソッドを次の順に実行します。

See Also: transaction, take_values_from_request, append_to_response

クエリ文字列を生成します。

See Also: query_string

ハッシュからクエリ文字列を生成します。

See Also: query_association

URLまたはクッキーからセッションIDを取得します。 クッキーを使う設定であればクッキーを優先します。

See Also: context_id

request からキーが Application#session_key のクッキーを取得し、 そのクッキーに記録されているセッションIDを取得します。

See Also: session_id, session_id_from_url

URLからセッションIDを取得します。

See Also: session_id, session_id_from_cookie

element のメソッドを次の順に実行します。

See Also: transaction, invoke_action, append_to_response

ブロックの実行前後に、 element の begin_context, end_context を実行します。

See Also: Element#begin_context, Element#end_context, take_values_from_request, invoke_action, append_to_response

URLを生成します。サブクラスでオーバーライドします。 デフォルトの実装は空です。

path:URLに含めるパス。CGIKitの使うパスの次に追加される
query:URLに含めるクエリ文字列
is_secure:真であれば https:// から始まるURLを生成する
port:ポート番号
sid:URLにセッションIDを含めるかどうか

See Also: application_url, ComponentRequestHandler#url, DirectActionRequestHandler#url, Context#url, Application#url

[Validate]