Index: [Article Count Order] [Thread]

Date:  Sat, 18 May 2002 15:14:00 +0900
From:  GOTO Kentaro <gotoken@notwork.org>
Subject:  [webrickja:27] Re: クッキー、及びセッション管理の例
To:  webrickja@notwork.org
Message-Id:  <200205180614.g4I6E0rF042335@miso.k.notwork.org>
In-Reply-To:  <20020518125911.1d74645f.sino@e-turi.net>
References:  <20020518125911.1d74645f.sino@e-turi.net>
X-Mail-Count: 00027

At Sat, 18 May 2002 12:59:11 +0900,
Shinobu TAKANASHI wrote:
> クッキーを作成し、ブラウザに返す簡単な HTTPServlet の例をご教示
> 願えればと思います。

配列で受け取ることができ、配列にセットします。
例はこんなかんじです。リロードすると内容が変化します。

#! ruby

require 'webrick'

class Kakko < WEBrick::HTTPServlet::AbstractServlet
  KAKKO = "Kakko"

  def do_GET(req, res)
    cookie = req.cookies.find{|c| c.name == KAKKO} || # fetch
               WEBrick::Cookie.new(KAKKO, '0')        # or create cookie
    n = cookie.value.to_i                             # get cookie value
    cookie.value = (n + 1).to_s                       # set cookie value
    res.cookies << cookie                             # set cookie

    # create contents
    res['content-type'] = 'text/plain; charset=EUC-JP'
    lines, words = n.divmod(WORDS.size)
    res.body = (WORDS.join+"\r\n")*lines+WORDS[0..words].join
  end

  WORDS = [
    "\244\267\244\272\244\253\244\312", 
    "\244\263\244\317\244\363\244\316", 
    "\244\342\244\352\244\316", 
    "\244\253\244\262\244\253\244\351"
  ]
end

s = WEBrick::HTTPServer.new(:Port => 2001)
s.mount("/", Kakko)
s.start


-- Gotoken