获取scope对象

1. 与Servlet解耦非IOC方式,依赖容器ActionContext
public class LoginAction extends ActionSupport {
	private String username;
	
	ActionContext context;
	Map<String, Object> request;
	Map<String, Object> session;
	Map<String, Object> application;

	public String execute() throws Exception {
		context = ActionContext.getContext();
		request = (Map<String, Object>) context.get("request");
		session = context.getSession();
		application = context.getApplication();
		
		request.put("request", "request属性");
		session.put("session", "session属性");
		application.put("application", "application属性");
		
		return SUCCESS;
	}
}


2. 与Servlet解耦非IOC方式,实现Aware接口(最常用)
public class Login2Action extends ActionSupport implements RequestAware, SessionAware, ApplicationAware {
	private String username;
	
	Map<String, Object> request;
	Map<String, Object> session;
	Map<String, Object> application;

	public String execute() throws Exception {		
		request.put("request", "request属性");
		session.put("session", "session属性");
		application.put("application", "application属性");
		
		return SUCCESS;
	}
}


3. 与Servlet耦合的非IOC方式, 依赖容器ServletActionContext
public class Login3Action extends ActionSupport {
	private String username;
	
	HttpServletRequest request;
	HttpSession session;
	ServletContext application;

	public String execute() throws Exception {
		request = ServletActionContext.getRequest();
		session = request.getSession();
		application = ServletActionContext.getServletContext();
		
		request.setAttribute("request", "request属性");
		session.setAttribute("session", "session属性");
		application.setAttribute("application", "application属性");
		
		return SUCCESS;
	}
}


4. 与Servlet耦合的IOC方式,实现Aware接口
public class Login4Action extends ActionSupport implements ServletRequestAware, ServletContextAware {
	private String username;
	
	HttpServletRequest request;
	HttpSession session;
	ServletContext application;

	public String execute() throws Exception {
		session = request.getSession();
		
		request.setAttribute("request", "request属性");
		session.setAttribute("session", "session属性");
		application.setAttribute("application", "application属性");
		
		return SUCCESS;
	}
}

你可能感兴趣的:(scope)