httpsession - 每次页面重新加载时的会话重置问题
问题描述
在我的控制台页面中,我需要保存执行的命令并将它们显示给用户。为此,我使用会话变量,因为每个用户都会获得不同的会话。但问题是每次都会重新创建会话。所以,我总是在这里得到一个空值,
ArrayList commands = (ArrayList)session.getAttribute("commands")==null?new ArrayList():(ArrayList)session.getAttribute("commands");
尽管如此,我更新了会话变量如下,它不起作用,因为每次页面加载时都会重新创建会话。
String cmd = (String)request.getAttribute("text1");
commands.add(cmd);
session.setAttribute("commands",commands);
我发现会话是通过使用重新创建的,
<%= session.getId() %>
(每次获得不同的值)。有没有办法使用 web.xml 或其他任何东西来防止会话重新创建?
解决方案
最后我发现问题是我的 context.xml 文件中的 cookies={false} 。当我将其更改为 true 时,它工作正常。
推荐阅读
- java - Spring Tomcat错误常量池中的无效字节标记:19
- stm32f4 - STM32F4 SRAM 内容即使在电源复位和待机后仍保留
- c# - 实现一个长时间运行的服务(无限长度/始终可用)来处理 ASP.NET Core Web Api 中的数据
- r - 将 str() 的输出写入文本文件?
- github-pages - 为什么我的 github 页面没有显示给所有用户?
- html - 不遵守 css 过渡线性属性
- django - 如何根据 if 条件更改模板中的数据级类?
- c++ - 如何在主函数中调用模板类
- node.js - 当我使用服务器的 JIMP 大小旋转图像时,每次旋转后图像大小都会迅速增加?有什么理由吗?
- java - 图像未在 reyclerview 中显示,图像来自 firebase