struts2 中获取会话对象的方法有很多。从以下获取会话对象的最佳和推荐方法是哪一种?
- 动作上下文
- 会话感知
- 从ServletRequestAware和从请求对象的会话之后获取请求。
现在我使用 ServletRequestAware 在所有操作中获取会话对象,即使不需要请求对象。
哪一个是最好的,为什么它是最好的?
提前致谢
struts2 中获取会话对象的方法有很多。从以下获取会话对象的最佳和推荐方法是哪一种?
现在我使用 ServletRequestAware 在所有操作中获取会话对象,即使不需要请求对象。
哪一个是最好的,为什么它是最好的?
提前致谢
SessionAware
尽管您也可以通过您所说的其他方式访问会话,但首选实施。
通过实现SessionAware
,您可以让 struts2 有机会将会话属性(即映射)注入到您的操作中。这使您的代码保持干净,不会耦合到底层 servlet 上下文,并且还使测试更容易,因为您可以将任何映射对象传递给具有所需属性的操作。此外,对此会话映射所做的任何更改都将反映在真实的会话对象上。
同意多特雷。使您的操作实现会话感知,并创建会话变量(即 Map 变量)。该变量可以像任何普通变量一样对待。代码看起来更整洁。