在servlet中获取cookie

Ana*_*oly 12 java cookies servlets

我正在尝试使用servlet获取cookie

Cookie[] cookie = request.getCookies();
Run Code Online (Sandbox Code Playgroud)

cookie总是如此null.

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

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

我不明白什么是错的?

got*_*ers 15

根据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();
}
Run Code Online (Sandbox Code Playgroud)

如果不...

使用addCookie(Cookie)响应对象中的方法添加Cookie !

  • 请注意"如果没有发送cookie,则此方法返回null.",如果getCookies()返回null,则在执行cookies.length时,给定代码将因NullPointerException而失败. (8认同)

小智 13

SET COOKIE

  Cookie cookie = new Cookie("cookiename", "cookievalue");
  response.addCookie(cookie);
Run Code Online (Sandbox Code Playgroud)

得到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();
       }
   }
Run Code Online (Sandbox Code Playgroud)