我在Tomcat上使用Servlet API 2.5的Cookie类时遇到了问题。我从HttpServletRequest对象中取出cookie列表,并像下面这样迭代它们:
Cookie[] cookies = request.getCookies();
for(Cookie cookie : cookies) {
System.out.println("Name=" + cookie.getName() + " Domain=" + cookie.getDomain());
}
但是,请求中每个cookie的域都是null。为什么会这样?我问这个问题的原因是因为我在两个不同的域中有一个同名的cookie,我想能够根据域来区分它们。为了澄清情况,我的同名cookie被设置在.anydomain.net和.subdomain.anydomain.net中。在请求中两者都被发送,但是它们到达servlet时域为空。servlet无法看到发送给它的cookie的域,这是否是预期行为?
编辑:我在以前的请求中与域、过期时间和路径一起设置了cookie到servlet中。接下来的请求带有这些cookie,但是显示的域为空。我已经验证了浏览器中的cookie被设置在正确的域中。
编辑2:我正在使用Tomcat 6