1、Map<String,Object> map =  ActionContext.getContext().getSession();

2、HttpSession session = ServletActionContext.getRequest().getSession();

3、让Action实现SessionAware接口,并实现public void setSession(Map<String,
Object> session) {}
方法,Struts2会在实例化Action后调用该方法,通过方法参数将Session对象注入进来。如果我们想获取Session,我们可以定义成员变量,接收注入进来的Session对象。

比如:

public class UserAction implements SessionAware{
private Map<String,Object> session; //......... @Override
public void setSession(Map<String, Object> session) {
this.session=session; }
}

三种方式的比较:

返回类型的对比:1,3获取的Session类型是Map<String,Object>类型,2获取的类型是HttpSession。

获取方式对比:

1,2是我们主动获取Session,3是采用注入的方式自动注入Session,这是被动的。

推荐使用3来创建Session,因为它更为灵活而且符合面向接口编程的思想。

上面的第三种方式介绍了Action使用实现SessionAware的方式获得封装了session的Map对象,除此之外还有提供如下的接口RequestAware(获得封装了request的Map对象),ApplicationAware(获得封装了application的session对象),ServletRequestAware(获得HttpServletRequest对象),ServletResponseAware(获得HttpServletResponse对象),ServletContextAware(获得ServletContext对象)。

原文链接:Struts2中获取session的三种方式

最新文章

  1. bzoj2243树链剖分+染色段数
  2. 【解决方法】安装Win7和linux双系统后,linux报错“无法分配所提交的分区 not enough free space on disks”问题,以及win7无法启动“BootMGR image is corrupt....”问题
  3. 细说php一些常见的知识点
  4. Openstack安全规则说明
  5. 2016年12月23日 星期五 --出埃及记 Exodus 21:18
  6. Binary Tree Maximum Path Sum
  7. 暴力清除Android中的短信
  8. .pro配置选项
  9. Linux的视频编程(V4L2编程)【转】
  10. 使用Axure制作App原型应该怎样设置尺寸?
  11. PCB电路板上防潮绝缘抗腐蚀的三防漆
  12. VRRP协议具体解释
  13. oracle sys sysman system 介绍
  14. 让两个Div并排显示
  15. 不使用webview,用手机浏览器的android app
  16. JavaScript DOM编程艺术-学习笔记(总结一)
  17. tcp/ip 卷一 读书笔记(5)arp和rarp 同网段和不同网段之间的通信过程
  18. activiti 任务节点 处理人设置
  19. 几种扫描二维码工具的User-Agent
  20. HttpServletRequest内容处理工具类

热门文章

  1. 程序员的福音,AI可以自动修复bug了!
  2. Android 演示 ViewPager
  3. IOCCC(The International Obfuscated C Code Contest)
  4. springmvc-servlet.xml中use-default-filters的作用
  5. iOS编程(双语版)-视图-Frame/Bounds/Center
  6. ZH奶酪:Git简明教程
  7. C#中使用多款LevelDB.Net封装测试性能
  8. maven安装配置部署建项运行
  9. angularjs图片上传和预览 base64
  10. Mule 入门之:环境搭建