Java中的Cookie问题

时间:2010-06-06 13:45:21

标签: java servlets cookies

如何区分通过我的网站设置的多个Cookie?我正在设置两种cookie,以查看用户是否访问过该站点,另一种用于身份验证。我如何区分这两者?当有人在验证后访问页面时,我得到了它们。我是否向Cookie值添加额外信息还是有其他方式吗?我知道setName()函数将从那时起为每个cookie更改名称(来自jsessionid)。我是对的吗?

  • 帕乌

4 个答案:

答案 0 :(得分:1)

无论如何,要对用户进行身份验证,我宁愿使用HttpSession。登录时,将User对象作为会话属性,以便您可以检查会话中是否存在User对象。 HttpSession本身由JSESSIONID cookie支持,唯一的区别是servletcontainer将透明地为您管理这一切。

答案 1 :(得分:0)

错误的问题。创建cookie对象时设置Cookie名称。

答案 2 :(得分:0)

查看此网站以获取Cookie教程http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial-Cookies.html

您应该可以执行getName并检查cookie的名称。这是一个样本

  public static String getCookieValue(Cookie[] cookies,
                                      String cookieName,
                                      String defaultValue) {
    for(int i=0; i<cookies.length; i++) {
      Cookie cookie = cookies[i];
      if (cookieName.equals(cookie.getName()))
        return(cookie.getValue());
    }
    return(defaultValue);
  }

你应该用这样的东西创建cookie ......

Cookie searchStringCookie =
  new LongLivedCookie("name", value);
response.addCookie(searchStringCookie);

答案 3 :(得分:0)

Cookie是constructed作为名称 - 值对。

getCookies()接口的HttpServletRequest调用将返回手头请求中的所有Cookie。

您可以使用getNameCookieretrieve it's value电话检查姓名来迭代所有Cookie并找到您需要的Cookie。