Java
cookie

sastrutsでクッキー取得したり書き込んだり

sastrutsでクッキーがあるかないかを調べ、なければ追加する方法をメモ
クッキーの名前はcookieName、値はunixTimeを使う。

//requestとresponseオブジェクトを取得
HttpServletRequest request = RequestUtil.getRequest();
HttpServletResponse response = ResponseUtil.getResponse();
//unixtime取得
String unixTimestamp = String.valueOf(System.nanoTime());
String name = "cookieName";

//cookieのリストを取得
Cookie[] cookies = request.getCookies();
        if (cookies != null) {
       //requestのクッキーをチェック
            for (Cookie cookie : cookies) {
                //cookieNameのクッキーがあればその値を取得
                if (cookie.getName().equals(name)) {
                    value = cookie.getValue();
                    break;
                }
            }
            //無ければ作成
            if (value == null) {
                value = URLEncoder.encode(unixTimestamp, "Shift_JIS");
                //クッキーを生成
                Cookie cookie = new Cookie(name, value);
                //クッキーの期間設定(1年)
                cookie.setMaxAge(31536000);
                //クッキーをレスポンスヘッダーに追加
                response.addCookie(cookie);する
            }
            //無ければ作成
        } else {
            value = URLEncoder.encode(unixTimestamp, "Shift_JIS");
            Cookie cookie = new Cookie(name, value);
            cookie.setPath("/");
            cookie.setMaxAge(31536000);//クッキーの期間は一年
            response.addCookie(cookie);
        }