私はサーブレットでクッキーを取得しようとしています
Cookie[] cookie = request.getCookies();
ただし、cookie
は常にnull
です。
したがって、別のサーブレットから設定すると、ブラウザの設定に表示されます。
Cookie cookie = new Cookie("color", "cyan");
cookie.setMaxAge(24*60*60);
cookie.setPath("/");
response.addCookie(cookie);
何が悪いのか分かりませんか?
ドキュメントによると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)
メソッドで追加されます。
クッキーを設定
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();
}
}
クライアントがcookieをサポートしているか?クッキーを受け入れないように設定されている場合、次のリクエストでクッキーを取り戻すことはできないためです...
私も同じ問題を抱えており、私の場合、Eclipseに組み込まれたブラウザーを使用していることが原因であることがわかりました。これはクッキーを受け入れません。 Chromeから同じJSPにアクセスすると、うまくいきました。たぶん、あなたは私がやったのと同じことをしていますか?
また、使用しているブラウザまたはインターネット設定がCookieを拒否するように設定されている場合もあります。これがあなたや同じ問題を経験している他の訪問者の役に立つことを願っています。