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