Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > webrick/httpservlet/filehandlerライブラリ > WEBrick::HTTPServlet::FileHandlerクラス

class WEBrick::HTTPServlet::FileHandler + WEBrick::HTTPServlet::AbstractServlet

クラスの継承リスト: WEBrick::HTTPServlet::FileHandler < WEBrick::HTTPServlet::AbstractServlet < Object < Kernel < BasicObject

要約

通常のファイルサーバとしての機能を提供するためのサーブレット。

特異メソッド

add_handler(suffix, handler)

与えられた拡張子のファイルを処理するためのサーブレットを登録します。

[PARAM] suffix:
拡張子を指定します。
[PARAM] handler:
サーブレットを指定します。
get_instance(server, *options) -> WEBrick::HTTPServlet::AbstractServlet

new(server, *options) を呼び出してサーブレットを生成して返します。 WEBrick::HTTPServer オブジェクトは実際にはこの get_instance メソッドを呼び出して サーブレットを生成します。

特に理由が無い限り AbstractServlet のサブクラスがこのメソッドを再定義する必要はありません。

[PARAM] server:
WEBrick::HTTPServer#mount 第3引数以降に指定された値がそのまま与えられます。
[PARAM] options:
WEBrick::HTTPServer#mount 第3引数以降に指定された値がそのまま与えられます。
new(server, root, options = {}, default = WEBrick::Config::FileHandler)

FileHandler サーブレットを生成します。ユーザが直接使うことはあまりあり ません。

[PARAM] server:
WEBrick::GenericServer のサブクラスのインスタンスを 指定します。
[PARAM] root:
サーブレットにルートディレクトリとして認識させる、 ローカルのファイルシステムのディレクトリを文字列で与える。
[PARAM] options:
設定を保存したハッシュ、
[PARAM] default:
デフォルトの設定を保存したハッシュを与える。
new(server, *options) -> WEBrick::HTTPServlet::AbstractServlet

サーブレットを生成して返します。 WEBrick::HTTPServer オブジェクトは server に自身を指定してサーブレットを生成します。

[PARAM] server:
サーブレットを生成する WEBrick::HTTPServer オブジェクトを指定します。
[PARAM] options:
WEBrick::HTTPServer#mount 第3引数以降に指定された値がそのまま与えられます。
remove_handler(suffix) -> Class

与えられた拡張子に対応するサーブレットを削除します。

[PARAM] suffix:
拡張子を指定します。

インスタンスメソッド

do_GET(request, response) -> ()
do_HEAD(request, response) -> ()
do_POST(request, response) -> ()
do_PUT(request, response) -> ()
do_DELETE(request, response) -> ()
do_OPTIONS(request, response) -> ()

自身の service メソッドから HTTP のリクエストに応じて 呼ばれるメソッドです。AbstractServlet のサブクラスはこれらのメソッドを適切に実装し なければいけません。返り値は特に規定されていません。

クライアントが使う可能性のある RFC で定義された HTTP のメソッドはすべて実装する必要があります。 クライアントからのリクエストに使われないと分かっているメソッドは実装しなくてもかまいません。 実装されていない HTTP メソッドであった場合、自身の service メソッドが 例外を発生させます。

このメソッドが呼ばれた時点では、クライアントからのリクエストに含まれる Entity Body の読み込みは まだ行われていません。WEBrick::HTTPRequest#query, WEBrick::HTTPRequest#body などの メソッドが読ばれた時点で読み込みが行われます。クライアントから巨大なデータが送られてくることを考慮して ユーザはプログラミングを行うべきです。

[PARAM] request:
クライアントからのリクエストを表す WEBrick::HTTPRequest オブジェクトです。
[PARAM] response:
クライアントへのレスポンスを表す WEBrick::HTTPResponse オブジェクトです。

例:

require 'webrick'
class HogeServlet < WEBrick::HTTPServlet::AbstractServlet
  def do_GET(req, res)
     res.body = 'hoge'
  end
end

srv = WEBrick::HTTPServer.new({ :DocumentRoot => './',
                                :BindAddress => '127.0.0.1',
                                :Port => 20080})
srv.mount('/', HogeServlet)
trap("INT"){ srv.shutdown }
srv.start
do_GET(request, response) -> ()

GET リクエストを処理します。

[PARAM] request:
クライアントからのリクエストを表す WEBrick::HTTPRequest オブジェクトです。
[PARAM] response:
クライアントへのレスポンスを表す WEBrick::HTTPResponse オブジェクトです。
[EXCEPTION] WEBrick::HTTPStatus::NotFound:
対象となるパスが見つからなかった場合に発生します。
do_OPTIONS(request, response) -> ()

OPTIONS リクエストを処理します。

[PARAM] request:
クライアントからのリクエストを表す WEBrick::HTTPRequest オブジェクトです。
[PARAM] response:
クライアントへのレスポンスを表す WEBrick::HTTPResponse オブジェクトです。
[EXCEPTION] WEBrick::HTTPStatus::NotFound:
対象となるパスが見つからなかった場合に発生します。
do_POST(request, response) -> ()

POST リクエストを処理します。

[PARAM] request:
クライアントからのリクエストを表す WEBrick::HTTPRequest オブジェクトです。
[PARAM] response:
クライアントへのレスポンスを表す WEBrick::HTTPResponse オブジェクトです。
[EXCEPTION] WEBrick::HTTPStatus::NotFound:
対象となるパスが見つからなかった場合に発生します。
service(request, response) -> ()

リクエストメソッドに応じて自身の do_* メソッドを呼び出します。

[PARAM] request:
クライアントからのリクエストを表す WEBrick::HTTPRequest オブジェクトです。
[PARAM] response:
クライアントへのレスポンスを表す WEBrick::HTTPResponse オブジェクトです。
[EXCEPTION] WEBrick::HTTPStatus::NotFound:
対象となるパスが見つからなかった場合に発生します。
service(request, response) -> ()

指定された WEBrick::HTTPRequest オブジェクト request の WEBrick::HTTPRequest#request_method に応じて、 自身の do_GET, do_HEAD, do_POST, do_OPTIONS... いずれかのメソッドを request と response を引数として呼びます。

WEBrick::HTTPServer オブジェクトはクライアントからのリクエストがあるたびに サーブレットオブジェクトを生成し service メソッドを呼びます。

特に理由が無い限り AbstractServlet のサブクラスがこのメソッドを定義する必要はありません。

[PARAM] request:
クライアントからのリクエストを表す WEBrick::HTTPRequest オブジェクトです。
[PARAM] response:
クライアントへのレスポンスを表す WEBrick::HTTPResponse オブジェクトです。
[EXCEPTION] WEBrick::HTTPStatus::MethodNotAllowed:
指定された WEBrick::HTTPRequest オブジェクト req が自身に定義されていない HTTP のメソッドであった場合発生します。

定数

HandlerTable -> Hash

拡張子に対応するサーブレットを登録するためのハッシュです。

class WEBrick::HTTPServlet::FileHandler