我正在尝试使用
在servlet中获取cookieCookie[] cookie = request.getCookies();
但cookie
始终为null
。
所以我从另一个servlet设置它们,它们出现在浏览器首选项中。
Cookie cookie = new Cookie("color", "cyan");
cookie.setMaxAge(24*60*60);
cookie.setPath("/");
response.addCookie(cookie);
我不明白什么是错的?
答案 0 :(得分:15)
According to docs getCookies()
返回一个数组,其中包含客户端使用此请求发送的所有Cookie对象。如果没有发送cookie,则此方法返回null。
您是否正确添加了Cookie?如果是,您应该能够遍历用
返回的cookie列表Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++) {
String name = cookies[i].getName();
String value = cookies[i].getValue();
}
如果没有......
使用响应对象中的addCookie(Cookie)
方法添加Cookie!
答案 1 :(得分:13)
设置COOKIE
Cookie cookie = new Cookie("cookiename", "cookievalue");
response.addCookie(cookie);
获取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();
}
}
答案 2 :(得分:1)
您确定客户端支持Cookie吗?因为如果它被配置为不接受cookie,你将永远不会让他们回到以下请求......
答案 3 :(得分:0)
我遇到了同样的问题,发现我的案例中的原因是我使用的是Eclipse内置的浏览器。这不接受cookie。当我从chrome访问相同的JSP时,它工作。也许你做的和我做的一样?
也可能是您正在使用的浏览器或您的互联网设置被设置为拒绝cookie。希望这可以帮助您或任何其他访问者遇到同样的问题。
答案 4 :(得分:-2)
首先,您应该创建一个cookie,然后添加到响应
Cookie cookie = new Cookie(name,value);
response.addCookie(cookie);