java - 清除 session 的最佳方法

标签 java web struts2

在我的注销操作中,我想使 session 无效/清除 session ,我想知道这三种方法之间有什么区别以及哪种方法更好:

-> ActionContext.getContext().getSession().clear();
-> getHttpServletRequest().getSession().invalidate()//servlet api
-> ((org.apache.struts2.dispatcher.SessionMap) session).invalidate(); //Struts 2 SessionAware interface

此外,struts 2 的“action session”对象和 servlet http session 对象之间有什么区别吗?

最佳答案

首先是最后一个问题:是的,正如文档所示。

SessionMap 是一个薄外观,它实现了 Map 接口(interface)并允许直接访问一些底层实现(例如,invalidate)。

第一个问题:在后两个问题之间,第一个问题略有不同。

clear 只是删除条目,IIRC 它实际上使 session 无效。我倾向于 SessionMap.invalidate() ,因为我试图避免直接与 servlet 规范绑定(bind),但在这种情况下我不认为它是一个大问题,特别是因为它只可能在少数地方被调用,例如注销。

关于java - 清除 session 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24764049/

相关文章:

java - 使用 spring Application Context 时的性能问题

java - 如何使用 TestNG RetryAnalyzer 调用新实例驱动程序

html - 输入中心,标签在左上方

java - 在 Struts2 中使用流结果

java - 多个嵌套布局字段中的事件 (OnClickListener)

java - 如果@Retryable 返回一个值,@Recover 将不起作用

java - 如何禁用窗体的 struts 2 表生成?

javascript - 如何格式化 struts-dojo datetimepicker 以显示 24 小时而不是 12 小时?

VB.Net Web Scraper - 请求被中止 : Could not create SSL/TLS secure channel

html - 全屏背景html