Action中访问Servlet

  struts2的Action不依赖任何Servlet API,这样可以更好地进行测试,但有时我们也要在struts2中访问Servlet API。一般有两种方法:

1、通过ActionContext
获得ActionContext实例
ActionContext demo=ActionContext.getContext();

ActionContext提供如下方法
Map getSession();
void setSession(Map session);
Map getApplication();

此方法中没有给出Request和Response两个对象,要获得这两个对象,可由struts2提供的
ServletActionContext类
HttpServletRequest request=ServletActionContext.getRequest();
HttpServletResponse response=ServletActionContext.getResponse();


2、通过实现 *Aware接口
如我们要使用session,如下代码
package lee;


import java.util.*;
import com.opensymphony.xwork2.ActionSupport;
import bean.Userfacade;


public class Login extends ActionSupport {
	
	private Userfacade use;
	private Map session;

	/**
	 * @param session the session to set
	 */
	public void setSession(Map session) {
		this.session = session;
	}

	/**
	 * @return the use
	 */
	public Userfacade getUse() {
		return use;
	}

	/**
	 * @param use the use to set
	 */
	public void setUse(Userfacade use) {
		this.use = use;
	}

	/* (non-Javadoc)
	 * @see com.opensymphony.xwork2.ActionSupport#execute()
	 */
	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		if(use!=null){
			session.put("user", "use");
			return SUCCESS;
		}
		else return INPUT;
	}
	
	

}

你可能感兴趣的:(java,bean,servlet)