読者です 読者をやめる 読者になる 読者になる

JavaでCookieを操作する

私的スニペットです。ご自由にお使いくださいw

cookieとは

これですねw → http://ja.wikipedia.org/wiki/HTTP_cookie

ログインを必要としないサイトのような、Sessionが使えない状況では、
Cookieを利用することでユーザを特定することができます。

ただし、Cookieはクライアント側に保存されるため改変が可能ですので、
ご利用は計画的に(・ω・)

Cookieを保存する

ソース
javax.servlet.http.HttpServletResponse res;
/* ------------------------------------------------
 HttpServletResponse 取得処理
------------------------------------------------ */

/* Cookie生成 */
Cookie cookie =
    new Cookie(/* Cookie名 */, URLEncoder.encode(/* 保存する値 */, "UTF-8"));
    
/* 有効期間:90日(秒単位) */
cookie.setMaxAge(60 * 60 * 24 * 90);
/* Cookie保存 */
res.addCookie(cookie);

Cookieに設定できるパラメータは、Javadocで確認してください。

Cookieを取得する

ソース
javax.servlet.http.HttpServletRequest req;
/* ------------------------------------------------
 HttpServletRequest 取得処理
------------------------------------------------ */

/* Cookie取得 */
Cookie[] cookies = req.getCookies();

String value = null;
if(cookies != null){
    for (Cookie cookie : cookies) {
        if(/* Cookie名 */.equals(cookie.getName())){
            value = cookie.getValue();
        }
    }
}

まとめ

Cookieの操作方法については以上です。
前述しましたが、Cookieはクライアント側に保存されるため改変が可能です。

例えば、特定のページに対する閲覧権限をCookieに持たせた場合、
閲覧権限のない悪意のあるユーザは、Cookieを改変し不正に閲覧することが可能となる場合があります。

よって、Cookieに保存する情報は必要最小限とするのが良いと考えます(・ω・)ノシ