【问题标题】:Not able to get cookie in different context无法在不同的上下文中获取 cookie
【发布时间】:2014-05-22 06:05:43
【问题描述】:

我在上下文 A 中设置 cookie 并尝试进入同一域中的上下文 B。我正在写这段代码....

Cookie cook= new Cookie("Name","value");
cook.setPath("/");
cook.setDomain(".foo.com");
response.addCookie(cook);

这里有什么问题?这就是我在另一个上下文中获取 cookie 的方式。请注意,我的代码在相同的上下文中运行良好

Cookie cookie = null;
Cookie[] cookies = null;
cookies = request.getCookies();
       out.println(cookies);
      for (int i = 0; i < cookies.length; i++){

                  cookie = cookies[i];
                  if("Name".equals(cookie.getName( ))){
                  out.println("Name : " + cookie.getName( ) + ",  ");
                  out.println("Value: " + cookie.getValue( )+" <br/>");
         }}

【问题讨论】:

  • 向我们展示您是如何尝试获取 cookie 的?当你试图得到你遇到的错误或问题时?
  • 没有错误..它只是没有显示值..我想我得到的cookie很好..我已经更新了我如何得到cookie的问题..请看

标签: java cookies session-cookies setcookie


【解决方案1】:

试着给 cookie 一个生命周期。

cookie.setMaxAge(86400) // 24h

没有生命周期的 cookie 绑定到浏览会话。在不同的上下文中浏览时,您可能处于不同的会话中。

【讨论】:

  • 试过这个..它没有工作..不确定我在哪里错了。
  • 您确定两个请求共享同一个域吗?特别是在本地测试时,域有时会搞砸。你能比较一下request.getRequestURL()和request.getServerName()
  • 我已经比较了这些值... serverName 在上下文中相同,并且上下文 A 中的 URL 在我设置 cookie 的位置相同,但在上下文 B 中,我将 request.getRequestURL() 值设为空。 ..上下文B也是一个JSR portlet..知道为什么我在那里得到空值吗?
猜你喜欢
  • 2016-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 2020-07-13
  • 1970-01-01
  • 2020-07-19
相关资源
最近更新 更多