TomcatでServlet API 2.5のCookieクラスを使用している問題があります。私はHttpServletRequestオブジェクトからのクッキーのリストを引き出し、そのようにそれらを反復:Java Servlet API 2.5 Cookie.getDomain()は常にnullを返します
Cookie[] cookies = request.getCookies();
for(Cookie cookie : cookies) {
System.out.println("Name=" + cookie.getName() + " Domain=" + cookie.getDomain());
}
しかし、ドメインがnullのリクエスト内のすべての単一のクッキーのために。どうしてこれなの?私が求めているのは、2つの異なるドメインに同じ名前のクッキーがあり、ドメインに基づいてそれらを区別できるようにしたいからです。状況を明確にするために、同じ名前のクッキーが.anydomain.netと.subdomain.anydomain.netに設定されています。どちらもリクエストで送信されていますが、サーブレットに到達するとドメインはnullになります。サーブレットが送信されたクッキーのドメインを認識できないことが予想されますか?
編集:前回のリクエストでドメイン、有効期限、およびパスと共にCookieをサーブレットに設定しました。これらのCookieを使用してブラウザにアクセスする次の要求は、ドメインをnullとして示します。私は、クッキーがブラウザの正しいドメインに設定されていることを確認しました。
編集2:私は、Tomcatの6を使用してい
setName()およびsetDomain()メソッドにブレークポイントを設定して、サーブレットコンテナがCookieヘッダを正しく解析するかどうかを確認できます。あなたのクッキーにコロン(:)が入っていますか?最近のTomcatのバージョンでは、ほとんどのクッキーをコロンで受け付けていません。 – akarnokd