您的位置:首页 > 移动开发

struts2 获得request session application的四种方式

2015-09-23 22:31 525 查看
(一)Map(在web.xml中必须使用2.1以上的配置)

public class LoginAction1 extends ActionSupport {

private Map request;

private Map session;

private Map application;

public LoginAction1() {

request = (Map)ActionContext.getContext().get("request");

session = ActionContext.getContext().getSession();

application = ActionContext.getContext().getApplication();

}

public String execute() {

request.put("r1", "r1");

session.put("s1", "s1");

application.put("a1", "a1");

return SUCCESS;

}

}

(二)继承并实现RequestAware,SessionAware, ApplicationAware 接口(依赖注入,强烈推荐使用)

public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware, ApplicationAware {

private Map<String, Object> request;

private Map<String, Object> session;

private Map<String, Object> application;

//DI dependency injection

//IoC inverse of control

public String execute() {

request.put("r1", "r1");

session.put("s1", "s1");

application.put("a1", "a1");

return SUCCESS;

}

@Override

public void setRequest(Map<String, Object> request) {

this.request = request;

}

@Override

public void setSession(Map<String, Object> session) {

this.session = session;

}

@Override

public void setApplication(Map<String, Object> application) {

this.application = application;

}

}

(三)获得真实对象

public class LoginAction3 extends ActionSupport {

private HttpServletRequest request;

private HttpSession session;

private ServletContext application;

public LoginAction3() {

request = ServletActionContext.getRequest();

session = request.getSession();

application = session.getServletContext();

}

public String execute() {

request.setAttribute("r1", "r1");

session.setAttribute("s1", "s1");

application.setAttribute("a1", "a1");

return SUCCESS;

}

}

(四)依赖注入+获得真是对象

public class LoginAction4 extends ActionSupport implements ServletRequestAware {

private HttpServletRequest request;

private HttpSession session;

private ServletContext application;

public String execute() {

request.setAttribute("r1", "r1");

session.setAttribute("s1", "s1");

application.setAttribute("a1", "a1");

return SUCCESS;

}

@Override

public void setServletRequest(HttpServletRequest request) {

this.request = request;

this.session = request.getSession();

this.application = session.getServletContext();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: