Struts框架中三种获取Session的方法
2011-06-16 17:06
274 查看
一。使用ActionContext对象
二,通过实现SessionAware接口
三,鉴于前两种获取session的方法都不是获得了真正意义的session,都不能调用session的方法
因而就有了第三种方法,仍然是采用ActionContext对象的方法,先获得HttpRequest,然后强制类型转换为其子类HttpServletRequest对象,最后再通过调用HttpServletRequest对象的方法来获取session,代码如下:
综上,获取session对象要么通过继承帮助类(即Aware类),要么通过调用ActionContext对象的相关方法间接获得
其实,除了session对象,我们还可能要用到Application或Request对象,这些都是有两种获取思路,即要么使用帮助类,要么使用ActionContext对象
如Application对象可以ActionContext.getContext().getApplication()也可以像第二种获取session的方法一样继承相应的直接在Action类中声明一个Map<String,Object>类型的session并生成其set方法
public String execute()throws Exception{ Map<String,Object> session = ActionContext.getContext().getSession(); session.put("name","tom"); return SUCCESS; }
二,通过实现SessionAware接口
public class TypeAction extends ActionSupport implements SessionAware{ //继承Action可以实现验证,国际化,获取本地信息 private Map<String,Object> session; public String execute() throws Exception{ session.put("name","tom"); return SUCCESS; } public String setSession(Map<String,Object> session){ this.session = session; } }
三,鉴于前两种获取session的方法都不是获得了真正意义的session,都不能调用session的方法
因而就有了第三种方法,仍然是采用ActionContext对象的方法,先获得HttpRequest,然后强制类型转换为其子类HttpServletRequest对象,最后再通过调用HttpServletRequest对象的方法来获取session,代码如下:
HttpSerletRequest request = (HttpServletRequest)ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST); HttpSession session = request.getSession(); //同理,HttpServletResponse 对象也是可以这样获得的 HttpSerletResponse response= (HttpServletResponse)ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE);
综上,获取session对象要么通过继承帮助类(即Aware类),要么通过调用ActionContext对象的相关方法间接获得
其实,除了session对象,我们还可能要用到Application或Request对象,这些都是有两种获取思路,即要么使用帮助类,要么使用ActionContext对象
如Application对象可以ActionContext.getContext().getApplication()也可以像第二种获取session的方法一样继承相应的直接在Action类中声明一个Map<String,Object>类型的session并生成其set方法
相关文章推荐
- Struts2获取request、session、application的三种方法
- Struts2 在Action中获取request、session、servletContext的三种方法
- struts2系列十之4中获取使用request,session,application的方法和页面显示的三种方法【后期ognl算第四种】
- Struts2 在Action中获取request、session、servletContext的三种方法
- Jsp获取session的三种有效方法
- JAVA中获取从键盘输入的数据的三种方法
- Hibernate三种状态和Session常用的方法
- 三种方法可以获取当前web程序目录物理路径
- C# 获取当前月份的天数的三种方法
- 获取表单对象,得三种方法
- 分布式环境中三种Session管理方法的使用场景及优缺点
- 关于 tomcat 集群中 session 共享的三种方法
- URL转Drawable之 Android中获取网络图片的三种方法
- Java中获取键盘输入值的三种方法
- hibernate获取session的两种方式分别是openSession() 方法和getCurrentSession() 方法。
- PHP获取POST数据的三种方法
- spring-mvc使用request的方法,获取session方法
- Struts2获取request三种方法
- AJAX从服务端获取数据的三种方法【转:http://www.cnblogs.com/nokiaguy/archive/2008/05/25/1207157.html】
- Struts2中的session、request、respsonse获取方法