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)
element のメソッドを次の順に実行します。
See Also: transaction, take_values_from_request, invoke_action
アプリケーションのURLを生成します。 is_secure が真であれば https:// から始まるURLを、 偽であれば / から始まるURLを生成します。 port を指定するとポート番号をURLに含めます。
See Also: url
リクエストを処理します。 サブクラスではこのメソッドを必ずオーバーライドしてください。
このクラスでは、 request からセッションIDとコンテキストIDを 解析し、request にセットする部分のみ実装してあります。 サブクラスで super すると便利です。
element のメソッドを次の順に実行します。
See Also: transaction, take_values_from_request, append_to_response
request からキーが Application#session_key のクッキーを取得し、 そのクッキーに記録されているセッションIDを取得します。
See Also: session_id, session_id_from_url
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