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