Struts2的Action中获取request对象的几种方式?

 

1. 经过ActionContext.getSession获取ide

2. 经过ServletActionContext.getRequest()获取this

3. 经过SessionAware接口注入spa

4. 经过ServletRequestAware接口注入对象

 

第一种获取requet对象方法---HttpServletRequest对象的attributes(解耦)  接口

    Map<String, Object> request = (Map)ActionContext.getContext().get("request");  get

 

第二种HttpServletRequest request = ServletActionContext.getRequest(); it

 

三四种方法须要 Action类实现相应的拦截器接口io

  1,实现ServletRequestAware接口,  class

  2,实现 setServletRequest方法。   request

    Struts2在调用 execute方法以前就会先调用 setServletRequest方法

并将 request参数传入这个方法

 

经过IOC的方式注入 须要的Servlet API

public class UserAction extends ActionSupport implements ServletResponseAware, ServletRequestAware{

  private String username;

  private int password;

 

  HttpServletRequest req;

  HttpServletResponse resp;

 

  //实现ServletRequestAware 经过IOC的方式 得到request

  @Override

  public void setServletRequest(HttpServletRequest req) {

     this.req = req;

  }

  //实现ServletResponseAware 经过IOC的方式得到Response

   

Java Program!