我有这样一种情况,我需要在创建 session 时创建一个 cookie,而当 session 被删除时,我必须删除该 cookie。当用户手动结束 session 时,我可以在注销 servlet 的 doGet 方法中删除 cookie。但是当 session 超时时,我无法做到这一点,所以我打算为此起诉 HttpSessionListener,但我看到了一些我们不能这样做的地方。除了提到的方法之外还有其他方法吗 here .
最佳答案
当您不访问用户时,真的要如何删除 cookie?!?!
唯一的解决方案是将 cookie 实时时间设置为您的 cookie session 的确切时间(默认为 1 小时)
对于每个请求,您需要为 cookie 设置更新时间(current_timestamp+'1 hour'
),它会告诉浏览器在接下来的 1 小时内保留 cookie。
除了 cookie 之外,您还需要检查 cookie 和 session 的完整性,只需跟踪 cookie 与 session 的完整性(可能是哈希),当用户试图通过提供 cookie A 来欺骗您的服务器时,它会帮助您来自 session 用户 B 的用户 A。
关于java - 删除 HttpSessionListener 中的 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31814865/