1 第一种访问方式 直接访问 非ioc访问
访问session或者是aplication通过ActionContext.getContext().getSession
ActionContext.getContext().getApplication
访问request通过ServletActionContext.getrequest()
2 ioc inverse of control 控制反转
要访问request 实现ServletrequestAware接口 实现setServletRequest方法 在我们的action中定义一个HttpServletRequest request;
要使用IoC方式,我们首先要告诉IoC容器(Container)想取得某个对象的意愿,通过实现相应的接口做到这点
HttpServletResponse response = ServletActionContext.getResponse();
//注意通过ServletActionContext不能直接取得session,要先得到request然后调用request.getSession()方法
HttpSession session = request.getSession();
访问session或者是aplication通过ActionContext.getContext().getSession
ActionContext.getContext().getApplication
访问request通过ServletActionContext.getrequest()
2 ioc inverse of control 控制反转
要访问request 实现ServletrequestAware接口 实现setServletRequest方法 在我们的action中定义一个HttpServletRequest request;
要使用IoC方式,我们首先要告诉IoC容器(Container)想取得某个对象的意愿,通过实现相应的接口做到这点
实现相关接口SessionAware, ServletRequestAware, ServletResponseAware
private Map att;
private HttpServletRequest request;
private HttpServletResponse response;
publicvoid setSession(Map att) {
this.att = att;
}
publicvoid setServletRequest(HttpServletRequest request) {
this.request = request;
}
publicvoid setServletResponse(HttpServletResponse response) {
this.response = response;
}
要访问session 类似
/--/
struts2会自动调用setServletRequest(HttpServletRequest request)
使当前的HttpServletRequest指向action中的私有变量request,随后在execute()中可直接使用;
HttpServletResponse response = ServletActionContext.getResponse();
//注意通过ServletActionContext不能直接取得session,要先得到request然后调用request.getSession()方法
HttpSession session = request.getSession();