添加和阅读cookie

时间:2015-05-09 07:41:19

标签: java spring-mvc cookies

我想在登录时在我的回复中设置cookie,然后在每次请求后阅读该内容。 为此,我在登录时添加了这样的cookie:

Cookie cookieClientId = new Cookie("id", token.getTkn());
    cookieClientId.setMaxAge(24*60*60);
    response.addCookie(cookieClientId);

当我提出要求时,我会检查是否存在这样的cookie:

cookies = ((HttpServletRequest) request).getCookies();
  cookieId = null;
  if (cookies != null) {
              for (Cookie ck : cookies) {
                System.out.println("ck--------------- "+ck.getName());
                   if (ck.getName().toString().equals("id")) {
                           System.out.println("id cookie equal");
                           cookieId = ck.getValue();
                           System.out.println("cookie id " + cookieId);
                          System.out.println(cookieId.equals(authToken));
                            if (cookieId.equals(authToken)) {
                                isSecretAndKeyValid = true;
                            }
                        };
                    }

但我遇到的问题是我只在lo-gin请求后的第一个请求中获取cookie。在每次请求之后,我都不会使用该名称的任何cookie来罚款#id;' ,我已经在lo-gin请求时设置了。

我尝试搜索cookie添加,检索方法,我几乎在所有地方都发现了这一点。

1 个答案:

答案 0 :(得分:0)

对于每个http请求,cookie都是隔离的,您必须在客户端存储cookie数据,然后在每个请求中,您将像这样设置cookie:

    HttpURLConnection connection = (HttpURLConnection) url.openConnection();

    for (HttpCookie cookie : cookieManager.getCookieStore().getCookies()) {

        cookieString += cookie.toString();          
    }

    connection.setRequestProperty("Cookie",cookieString);