5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JSP/サーブレット Cookieの設定・取得

Last updated at Posted at 2015-11-11

JSP/サーブレットでのCookieの設定と取得についての備忘録です。

Cookieの設定

Cookieクラス(javax.servlet.http.Cookie)のオブジェクトを生成して、名前とそれに紐づく値を設定します。
そしてCookieオブジェクトをレスポンスに付加して返します。

Cookieの設定
protected void doGet(HttpServletRequest request, HttpServletResponse response){
  Cookie cookie = new Cookie("XxxName", "XxxValue");
  cookie.setValue("YyyName", "YyyValue");
  // 90日間有効なCookie
  cookie.setMaxAge(60 * 60 * 24 * 90);
  response.addCookie(cookie);
}

Cookieの取得

設定よりも簡単で、getCookiesメソッドでリクエストからCookieオブジェクトを取得するだけです。

Cookieの取得
protected void doGet(HttpServletRequest request, HttpServletResponse response){
  // 存在しなければnullとなる
  Cookie[] cookies = request.getCookies();
  for (Cookie cookie : cookies) {
    System.out.println(cookie.getName() + ":" + cookie.getValue());
  }
}

Cookieのプロパティ

Cookieのプロパティは以下で設定・取得します。

Setter Getter 説明
setComment(String) getComment() コメント
setDomain(String) getDomain() 生成されたドメイン名(RFC2109)
setHttpOnly(boolean) isHttpOnly() HTTP通信ヘッダのみで有効なCookieか否か(デフォルトはfalseで無効)
setMaxAge(int) getMaxAge() 有効期限(秒)
setPath(String) getPath() クライアントがCookieを返す対象のパス
setSecure(boolean) getSecure() HTTPSまたはSSLの場合にのみCookieを送る(デフォルトはfalse)
setValue(String, String) getValue(String) Cookieに値を設定・取得する
setVersion(int) setVersion() Cookieのプロトコルバージョン(0ならNetscape Cookie、1ならRFC2109)
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?