Struts2提供了两种方式来访问request,session,application
第一种方式:与servlet API解耦的访问方式
(1)Struts2对HttpServletRequest,HttpSession,ServletContext进行了封装,构造了三个Map对象来替代这三种对象,在Action中,直接使用对应的Map对象来保存和读取数据。
ActionContext是action执行的上下文,在ActionContext中保存了action执行所需的一组对象:parameters,request,session,application,locale.
ActionContext context=ActionContext.getContext();
Map request =(Map) context.get(“request”);
Map session=context.getSession();
Map application=context.getApplication();
(2)实现特定的接口
让Struts2框架在运行时向Action实例注入request,session,application对象。
Org.apache.struts2.interceptor.RequestAware
向Action实例注入request Map对象
SessionAware
ApplicationAware
第二种方式:与servlet API 耦合的访问方式
要直接获取HttpSerlvetRequest和ServletContext 对象,可以使用org.apache.struts2.ServletActionContext类,该类是ActionContext的子类。
Public static HttpServletRequest getRequest();
Public static ServletContext getServletContext();
Public satic HttpServletResponse getResponse();