クッキーの利用


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

クッキーの作成

1番目の引数に作成するクッキーのクッキー名を指定。
2番目の引数に保存したい情報を指定。
Cookie cookie = new Cookie("visited", "1");

クッキーをクライアントへ保存

public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException{
 :
    Cookie cookie = new Cookie("visited", "1");
    response.addCookie(cookie);
}
URL http://localhost:8080/cookie/cookietest
アプリケーション配置場所 c:\servlet-sample\cookie\
web.xmlファイル c:\servlet-sample\cookie\WEB-INF\web.xml
コンテキストファイル C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost\cookie.xml
  • クッキーの確認方法
ブラウザのURL入力欄に「javascript:document.cookie;」を入力してEnter。

クッキーの取り出し

"getCookies"メソッドを使用。

  • 特定のクッキーの検索
「Cookie」クラスで用意されている"getName"メソッドを使用。

  • クッキーの値を取得
「Cookie」クラスで用意されている"getValue"メソッドを使用。
Cookie cookie[] = request.getCookies();

if (cookie != null){
    for (int i = 0 ; i < cookie.length ; i++){
        if (cookie[i].getName().equals("visited")){
            String val = cookie[i].getValue();
        }
    }
}
URL http://localhost:8080/cookie/cookietest

値の再設定

「Cookie」クラスで用意されている"setValue"メソッドで既存のクッキーに別の値を設定する。
Cookie cookie[] = request.getCookies();
Cookie visitedCookie = null;

if (cookie != null){
    for (int i = 0 ; i < cookie.length ; i++){
        if (cookie[i].getName().equals("visited")){
            visitedCookie = cookie[i];
        }
    }

    if (visitedCookie != null){
        int visited = Integer.parseInt(visitedCookie.getValue());

        visitedCookie.setValue(Integer.toString(visited + 1));
        response.addCookie(visitedCookie);
    }
}
URL http://localhost:8080/cookie/cookietest

有効期限の設定

作成したクッキーはデフォルトで有効期限がブラウザが閉じるまでとなっている。
「Cookie」クラスで用意されている"setMaxAge"メソッドで有効期限を設定する。
有効期限は秒数で指定する。
例えば1時間に設定したい場合: 
Cookie cookie = new Cookie("visited", "1");
cookie.setMaxAge(3600);
引数にマイナスの値を設定した場合、有効期限はブラウザが閉じるまでとなる。
引数に0を設定するとクッキーを破棄する。
URL http://localhost:8080/cookie/cookietest