Struts2中访问Servlet的API三种方式

利用 ActionContext对象

public class Aemo1Action extends ActionSupport {
	//完全解耦合方式,不能获得
	@Override
	public String execute() throws Exception {
		//利用Stuts2中的对象ActionContext对象
		ActionContext context = ActionContext.getContext();
		
		//调用ActionContext中的方法
		Map<String, Object> map = context.getParameters();
		
		//类似于Map<String,String[]>request.getParameterMap方法
		for (String key : map.keySet()) {
			String[] values = (String [])map.get(key);
			System.out.println(key+" "+Arrays.toString(values));
		}
		
		//向域中存入数据
		context.put("reqName", "reqValue"); //相当于request.setAttribute()
		context.getSession().put("sessName", "sessValue");//相当于session.setAttribute()
		context.getApplication().put("appName", "appValue");//相当于application.setAttribute()
		return SUCCESS;
	}

利用域对象的方式 ServletActionContext

public class Aemo2Action extends ActionSupport {
	@Override
	public String execute() throws Exception {
		//可以使用域对象的方法
		HttpServletRequest request = ServletActionContext.getRequest();
		Map<String, String[]> map = request.getParameterMap();
		for (String key : map.keySet()) {
			String[] values = map.get(key);
			System.out.println(key+"  "+Arrays.toString(values));
		}
		
		//向request域中储存数据
		request.setAttribute("reqName", "reqName");
		request.getSession().setAttribute("sessName", "sessName");
		request.getServletContext().setAttribute("appName", "appName");
		return SUCCESS;
	}
}

通过特定接口访问

public class Aemo3Action extends ActionSupport implements ServletRequestAware,ServletContextAware {

	private HttpServletRequest request;
	private ServletContext context;

	@Override
	public String execute() throws Exception {
		Map<String, String[]> map = request.getParameterMap();
		for (String key : map.keySet()) {
			String[] values = map.get(key);
			System.out.println(key+"  "+Arrays.toString(values));
		}
		//存入request域中
		request.setAttribute("reqName", "reqName");
		request.getSession().setAttribute("sessName", "sessName");
		context.setAttribute("appName", "appName");
		return super.execute();
	}

	@Override
	public void setServletRequest(HttpServletRequest request) {
		this.request=request;
	}

	@Override
	public void setServletContext(ServletContext context) {
		this.context=context;
	}

猜你喜欢

转载自blog.csdn.net/weixin_40007271/article/details/86365745
今日推荐