Struts2如何操作Request、Session和Application对象
2016-12-28 10:41
477 查看
Strtus2通常情况下使用以下两种方式来访问上述三种对象,即Servlet API解藕和耦合的访问方式。
Struts2分别对Request、Session和Application三个对象封装成了三个Map对象,直接使用封装好的Map对象来读取和保存数据。可以通过com.opensymphony.xwork2.ActionContext类来得到这三个对象。ActionContext是Action执行的上下文,保存了很多对象如parameters、request、session、application和locale等。通过ActionContext类获取Map对象的方法为:
ActionContext context=ActionContext.getContext(); --得到Action执行的上下文
Map request=(Map)context.get("request");--得到HttpServletRequest的Map对象
Map session=context.getSession();--得到HttpSession的Map对象
Map application=context.getApplication();--得到ServletContext的Map对象
除了利用ActionContext来获取request、session和application对象这种方式外,Action类还可以实现某些特定的接口,让Struts 2框架在运行时向Action实例注入request、session和application对象。这种方式也就是IOC方式,与之对应的三个接口和它们的方法如下所示:
2.Servlet API耦合方式:
直接访问Servlet API将使你的Action与Servlet环境耦合在一起,要直接获取HttpServletRequest和ServletContext对象,可以使用org.apache.struts2.ServletActionContext类,该类是ActionContext的子类。通过ServletActionContext类获取三个对象的方法为:
HttpServletRequest request = ServletActionContext.getRequest();--得到HttpServletRequest对象
HttpSession session = request.getSession();--得到HttpSession对象
ServletContext context = ServletActionContext.getServletContext();--得到ServletContext对象
除了上述的方法调用得到HttpServletRequest和ServletContext对象外,还可以调用ActionContext对象的get()方法,传递ServletActionContext.HTTP_REQUEST和ServletActionContext.SERVLET_CONTEXT键值来得到HttpServletRequest和ServletContext对象,如下所示:
Struts2分别对Request、Session和Application三个对象封装成了三个Map对象,直接使用封装好的Map对象来读取和保存数据。可以通过com.opensymphony.xwork2.ActionContext类来得到这三个对象。ActionContext是Action执行的上下文,保存了很多对象如parameters、request、session、application和locale等。通过ActionContext类获取Map对象的方法为:
ActionContext context=ActionContext.getContext(); --得到Action执行的上下文
Map request=(Map)context.get("request");--得到HttpServletRequest的Map对象
Map session=context.getSession();--得到HttpSession的Map对象
Map application=context.getApplication();--得到ServletContext的Map对象
除了利用ActionContext来获取request、session和application对象这种方式外,Action类还可以实现某些特定的接口,让Struts 2框架在运行时向Action实例注入request、session和application对象。这种方式也就是IOC方式,与之对应的三个接口和它们的方法如下所示:
public class SampleAction implements Action, RequestAware, SessionAware, ApplicationAware { private Map request; private Map session; private Map application; @Override public void setRequest(Map request) {this.request = request;} @Override public void setSession(Map session) {this.session = session;} @Override public void setApplication(Map application) {this.application = application;} }
2.Servlet API耦合方式:
直接访问Servlet API将使你的Action与Servlet环境耦合在一起,要直接获取HttpServletRequest和ServletContext对象,可以使用org.apache.struts2.ServletActionContext类,该类是ActionContext的子类。通过ServletActionContext类获取三个对象的方法为:
HttpServletRequest request = ServletActionContext.getRequest();--得到HttpServletRequest对象
HttpSession session = request.getSession();--得到HttpSession对象
ServletContext context = ServletActionContext.getServletContext();--得到ServletContext对象
除了上述的方法调用得到HttpServletRequest和ServletContext对象外,还可以调用ActionContext对象的get()方法,传递ServletActionContext.HTTP_REQUEST和ServletActionContext.SERVLET_CONTEXT键值来得到HttpServletRequest和ServletContext对象,如下所示:
ActionContext ctx= ActionContext.getContext(); HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST); HttpSession session = request.getSession(); ServletContext context = (ServletContext)ctx.get(ServletActionContext.SERVLET_CONTEXT);
相关文章推荐
- Struts2 操作Request、Session、Application对象
- [Struts2] 如何访问或添加request/session/application属性, 以及获取对象.
- Struts2操作request、session和application对象
- Struts2操作request、session和application对象
- Struts2系统学习(9)Action中操作request/session/application等对象
- Struts2 访问request、session和application对象(一)
- struts2 Action 访问web对象(request,session,application)
- Struts2的Action中获取request,session,application对象
- Struts2中操作request,session,application的方法
- Struts2 访问request、session和application对象
- truts2在Action中如何访问request,session,application(即ServletContext)对象
- Struts2在Action获取内置对象request,session,application(即ServletContext)
- Struts2 访问request、session和application对象
- 告诉你如何获得(struts2)request response session 对象
- Struts2 访问request、session和application对象
- [Struts2]访问request,session和application对象(转)
- Struts2中如何使用session、request等对象
- Struts2里如何取得request,session,application
- Struts2中操作request,session,application的方法
- 获取struts2中的对象 方式request、session、application、 resp