クッキーの作成

広告

ではまずクッキーの使い方から確認していきましょう。

クッキーはクライアント側にデータを保存するためのものです。例えば一度ホームページを閲覧したクライアントに対して訪問回数などをクッキーとして保存してもらいます。次に同じクライアントからホームページにアクセスがあった時、クッキーがクライアント側に存在すれば自動的にクッキーがあることをサーバに対して送信してくれますので、クッキーの有無を確認して保存されている内容を調べることで何回目の訪問なのかを調べることができます。

クッキーの利用手順としては、クライアントからアクセスがあった時にクッキーが既にあるかどうかを調べ、もしあればクッキー内に保存されている情報を取得します。もしクッキーが無いようなら新規にクッキーを作成してクライアントに保存することになります。

よってまずクッキーを新規に作成してみましょう。

まず下記のクラス図を見てください。

  • java.lang.Object
  • javax.servlet.http.Cookie
  • public class Cookie extends java.lang.Object implements java.lang.Cloneable

コンストラクタ1つだけ用意されています。

Constructs a cookie with a specified name and value. 

The name must conform to RFC 2109. That means it can contain only ASCII
alphanumeric characters and cannot contain commas, semicolons, or white
space or begin with a $ character. The cookie's name cannot be changed
after creation. 

The value can be anything the server chooses to send. Its value is probably 
of interest only to the server. The cookie's value can be changed after 
creation with the setValue method. 

By default, cookies are created according to the Netscape cookie 
specification. The version can be changed with the setVersion method. 

Parameters:
  name - a String specifying the name of the cookie
  value - a String specifying the value of the cookie 
Throws: 
  java.lang.IllegalArgumentException - if the cookie name contains 
    illegal characters (for example, a comma, space, or semicolon) or
    it is one of the tokens reserved for use by the cookie protocol

1番目の引数には作成するクッキーのクッキー名を指定します。クッキー名にはASCIIか英数字しか使えません。また2番目の引数には保存したい情報を指定します。

例えば、訪問回数を記録する為に「visited」という名前のクッキーを作成し、訪問回数を保存する場合には下記のようになります。

Cookie cookie = new Cookie("visited", "1");

これでクッキーが作成されました。次のページでクッキーをクライアント側に保存してみましょう。

( Written by Tatsuo Ikura )