2007年10月16日火曜日

Cookie

javax.servlet.http.Cookie

クライアントがサーバーにアクセス

サーバーがレスポンスにクッキーを添付

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

サーバーへ再度アクセス

クッキー情報からクライアントを特定

レスポンスにクッキーを添付する
HttpServletResponse#addCookie メソッド

Cookie cok = new Cookie(name, value);
cok.setMaxAge(60*60*24*180);
res.addCookie(cok);

Cookie オブジェクトの取得
HttpServletRequest#getCookies メソッド
クライアントがこのリクエストで送った全てのクッキーが配列に格納される。

Cookie のコンストラクタに渡す value は java.net.URLEncoder#encode(String s, String enc) メソッドで
エンコードします。
リクエスト先では java.net.URLDecoder#decode(String s, String enc) メソッドでデコードします。

<サンプル>
    Cookie cok = new Cookie("message", 
    URLEncoder.encode("あいうえお", "UTF-8"));

<サンプル>
    String str = null;
    Cookie[] cok = request.getCookies();
    if (cok != null) {
        for (int i = 0; i < cok.length; i++) {
            if (cok[i].getName().equals("message")) {
                str = URLDecoder.decode(cok[i].getValue(), "UTF-8");
                break;
            }
        }
    }

0 件のコメント: