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