java - 添加和读取cookie

标签 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;
                            }
                        };
                    }

但我面临的问题是我仅在登录请求后的第一个请求中获取 cookie。之后,在每个请求中,我不会对任何具有该名称“id”的 cookie 进行罚款,该名称是我在登录请求时设置的。

我尝试搜索cookie添加、检索方法,我几乎在所有地方都找到了这个。

最佳答案

默认情况下,当您向浏览器发送 cookie 时,浏览器会将 cookie 返回到发送 cookie 的目录以及该目录的所有子目录中的所有 servlet 和 JSP。要使cookie对整个应用程序可用,可以将路径设置为“/”。 (引自 Murach 的 Servlet 和 JSP,第二版)

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

关于java - 添加和读取cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30137363/

相关文章:

java - 从同步方法调用创建 CompletableFuture

java - Spring Rabbit如何正确发送回复消息?

SpringMVC @PathVariable 被截断

javascript - 如何在 cookie 中存储窗口引用?

c# - 使用 cookie 名称更新表 mysql create

java - 如何使用jni配置spring?

ajax - Spring 安全性 + Ajax session 超时问题

java - 如何在 Angular 应用程序中显示 MySQL Blob?

javascript - 我如何在没有 cookie 的情况下跟踪用户

javascript - 我如何通过 selenium java 从提示中获取占位符文本