web-dev-qa-db-ja.com

サーブレットでクッキーを取得する

私はサーブレットでクッキーを取得しようとしています

Cookie[] cookie = request.getCookies();

ただし、cookieは常にnullです。

したがって、別のサーブレットから設定すると、ブラウザの設定に表示されます。

Cookie cookie = new Cookie("color", "cyan");
cookie.setMaxAge(24*60*60);
cookie.setPath("/");
response.addCookie(cookie);

何が悪いのか分かりませんか?

13
Anatoly

ドキュメントによるとgetCookies()クライアントがこのリクエストで送信したすべてのCookieオブジェクトを含む配列を返します。 Cookieが送信されなかった場合、このメソッドはnullを返します。

クッキーを正しく追加しましたか?はいの場合、返されたCookieのリストを反復処理できるはずです。

_Cookie[] cookies = request.getCookies();

for (int i = 0; i < cookies.length; i++) {
  String name = cookies[i].getName();
  String value = cookies[i].getValue();
}
_

いいえの場合...

Cookieは、レスポンスオブジェクトのaddCookie(Cookie)メソッドで追加されます。

16
gotomanners

クッキーを設定

  Cookie cookie = new Cookie("cookiename", "cookievalue");
  response.addCookie(cookie);

GET COOKIE

  Cookie[] cookies = request.getCookies();
  if(cookies != null) {
      for (int i = 0; i < cookies.length; i++) {
          cookie=cookies[i]
          String cookieName = cookie.getName();
          String cookieValue = cookie.getValue();
       }
   }
13
dhan rajr

クライアントがcookieをサポートしているか?クッキーを受け入れないように設定されている場合、次のリクエストでクッキーを取り戻すことはできないためです...

1
user2224506

私も同じ問題を抱えており、私の場合、Eclipseに組み込まれたブラウザーを使用していることが原因であることがわかりました。これはクッキーを受け入れません。 Chromeから同じJSPにアクセスすると、うまくいきました。たぶん、あなたは私がやったのと同じことをしていますか?

また、使用しているブラウザまたはインターネット設定がCookieを拒否するように設定されている場合もあります。これがあなたや同じ問題を経験している他の訪問者の役に立つことを願っています。

0
IqbalHamid