@634

Servlet - Cookie の利用

Advertisement

javax.servlet.http.Cookie

サーブレットではクッキーを表すクラス javax.servlet.http.Cookie が用意されている。

クッキーに値を設定する場合、HttpServletResponse の addCookie() メソッドに Cookie オブジェクトを渡せばよい。

設定したクッキーを取得するときは HttpServletRequest のメソッド getCookies() を利用する。

サンプルコード

クッキーを設定するサーブレット、クッキーを取得するサーブレットを作成し、交互にアクセスしてみる。

クッキーを設定するサーブレット
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class AddCookie extends HttpServlet {
    //HTTP Get リクエストの処理
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html; charset=Shift_JIS");

        Cookie cookie = new Cookie("user_id","testuser");
        response.addCookie(cookie);

        PrintWriter out = response.getWriter();
        out.println("クッキーを設定しました。");
    }
}

クッキーを取得するサーブレット
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class GetCookie extends HttpServlet {
    //HTTP Get リクエストの処理
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html; charset=Shift_JIS");

        String name = null;
        String value = null;
        Cookie cookies[] = request.getCookies();
        for(int i = 0; i < cookies.length; i++){
            if(cookies[i].getName().equals("name")){
                name = cookies[i].getName();
                value = cookies[i].getValue();
                break;
            }
        }

        PrintWriter out = response.getWriter();
        out.println("クッキーを取得しました。"
                        + name + ":" + value);
    }
}

実行結果 ※カッコはユーザの動作
(GetCookie にアクセス)
クッキーを取得しました。null:null

(AddCookie にアクセス)
クッキーを設定しました。

(GetCookie にアクセス)
クッキーを取得しました。user_id:testuser

クッキーには存続期間の設定などを行うこともできる。
各メソッドは、javax.servlet.http.Cookie(リンク先:ja-jakarta)を参照。

Advertisement

ショートカット

634トップページ
このカテゴリのトップページに戻る
634ラボ
   UIコレクションギャラリー

サイト検索

Google

Web サイト内

Y!ログール