java - session.getAttribute 在禁用 cookie 时返回 null

标签 java jakarta-ee

谁能告诉我为什么当我禁用cookie时request.getSession().getAttribute(SESSIONUSER)返回null?

这里我也看不懂

Cookie[] cookies = request.getCookies();
Cookie thisCookie = cookies[0];
int age = thisCookie.getMaxAge();  
System.out.println(age);

age 结果是 -1 session 仍然在 10 小时左右后过期吗?为什么会这样?

最佳答案

您的 HTTPSession 使用 jsessionid 进行跟踪。它保存在 cookie 中。因此,当客户端向服务器发送第二个请求时,预计会发送 jsessionid。否则,服务器无法跟踪 session 。简而言之,您的 session 每次都是在 request.getSession() 期间重新创建的。因此,您在其中看不到任何对象。

“-1”的含义:
这意味着 cookie 在浏览器关闭之前应该一直有效。如果它存在 10 小时,则表示您的浏览器已经 10 小时没有关闭。

关于java - session.getAttribute 在禁用 cookie 时返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12218626/

相关文章:

java - Java 中 xPath-Object 或 Document-Object 的文件路径

java - Hibernate注解对象映射

寻找与 Java EE 架构相当的解决方案的 PHP 开发人员

java - 我是否可以在独立 ejb 模块中引用任何外部第 3 方 jar?

java - 使用 envers 进行 Junit 测试

c# - 了解 C++ 对 Web 应用程序开发的重要性

spring - 不调用 MyPointcutAdvisor(扩展 AbstractBeanFactoryPointcutAdvisor)和 MyInterceptor(实现 MethodInterceptor)

java - 在 Java EE 中实现 HTTPS

java - 立即启动并在一定时间间隔后运行的 cron 触发器

java - Spring Security 预身份验证