若是要取得Servlet API 中的一些对象,如request、response或session,在struts2 中能够有两种方式得到这些对象:session
① 非IoC(Inversion of Contorl)方式this
HttpServletRequest request = ServletActionContext.getRequest();对象
HttpServletResponse response = ServletActionContext.getResponse();接口
HttpSession session = request.getSession();get
若是你只想访问session的属性(Attribute)或添加session的属性,你能够经过下面的方式。io
Map session = ActionContext.getContext().getSession();class
session.put("username", "joe");容器
String username = (String)session.get("username");struts2
② IoC方式变量
要使用IoC方式,首先要告诉IoC容器(Container)想要取得摸个对象的意愿,经过实现相应的接口作到这点。包括 SessionAware、ServletRequestAware、ServletResponseAware,这样就能够在该类中定义对应的变量了。
public class IoCServlet extends ActionSupport implements SessionAware,ServletRequestAware,ServletResponseAware{
private Map att;
private HttpServletRequest request;
private HttpServletResponse response;
public void setSession(Map att){
this.att = att;
}
public void setServletRequest(HttpServletRequest request){
this.request = request;
}
public void setServletResponse(HttpServletResponse response){
this.response = response;
}
public String execute(){ } }