在servlet中获取cookie

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在servlet中获取cookie相关的知识,希望对你有一定的参考价值。

我正在尝试使用servlet获取cookie

Cookie[] cookie = request.getCookies();

cookie总是null

所以我从另一个servlet设置它们,它们出现在浏览器首选项中。

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

我不明白什么是错的?

答案

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!

另一答案

SET 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();
       }
   }
另一答案

您确定客户端支持cookie吗?因为如果它被配置为不接受cookie,你将永远不会让他们回到以下请求...

另一答案

我遇到了同样的问题,发现原因是我使用的是Eclipse内置的浏览器。这不接受cookie。当我从chrome访问相同的JSP时,它工作。也许你做的和我做的一样?

也可能是您正在使用的浏览器或您的互联网设置被设置为拒绝cookie。希望这可以帮助您或任何其他访问者遇到同样的问题。

另一答案

首先,您应该创建一个cookie,然后添加到响应中

Cookie cookie = new Cookie(name,value);
response.addCookie(cookie);

以上是关于在servlet中获取cookie的主要内容,如果未能解决你的问题,请参考以下文章

Servlet的Cookie值保存与获取

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

Servlet应用

Servlet应用

在 doFilter 中设置后获取 Cookie

Cookie工具类(获取cookie,设置cookie)