Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > webrick/httpservlet/abstractライブラリ > WEBrick::HTTPServlet::AbstractServletクラス > do_DELETE
do_GET(request, response) -> ()[permalink][rdoc]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 などの メソッドが読ばれた時点で読み込みが行われます。クライアントから巨大なデータが送られてくることを考慮して ユーザはプログラミングを行うべきです。
例:
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