版权声明: https://blog.csdn.net/qq_34866380/article/details/79732815
struts2对HttpServletRequest、HttpSession、ServletContext进行了封装,
构造了三个Map对象来替代这三个对象。在action中获取这三个对象的方法有
三种。
1、通过ActionContext获取
ActionContext ac = ActionContext.getContext();
Map<String,Object> application = ac.getApplication();
Map<String, Object> session = ac.getSession();
ac.put("req", "req");
application.put("application", "application");
session.put("session", "session");
2、通过ServletActionContext获取
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("req", "req");
request.getSession().setAttribute("session", "session");
request.getServletContext().setAttribute("application", "application");
3、通过实现SessionAware,ApplicationAware,RequestAware接口,在实现方法内赋值获取
public class testAction implements RequestAware,SessionAware,ApplicationAware{
private Map<String, Object> request;
private Map<String, Object> session;
private Map<String, Object> application;
public String execute(){
System.out.println("struts");
request.put("req", "request");
application.put("application", "application");
session.put("session", "session");
return "success";
}
@Override
public void setApplication(Map<String, Object> application) {
this.application = application;
}
@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}
@Override
public void setRequest(Map<String, Object> request) {
this.request = request;
}
}
在action后的跳转页面检测值
request = ${requestScope.req}<br>
session = ${sessionScope.session}<br>
application = ${applicationScope.application}<br>