struts2访问三大域和参数

<strong>@Override
	public String execute() throws Exception 
	{
		//在action中访问三大域和参数 简化开发
		//思想上的问题  松耦合 防侵入
		//获得request
		Map<String, Object> requestScope=(Map<String, Object>) ActionContext.getContext().get("request");
		//获得session
		Map<String, Object> sessionScope=(Map<String, Object>) ActionContext.getContext().getSession();
		//获得application
		Map<String, Object> applicationScope=(Map<String, Object>) ActionContext.getContext().getApplication();
		//获得参数
		Map<String, Object> params=ActionContext.getContext().getParameters();
		
		requestScope.put("name","requestTom");
		sessionScope.put("name","sessionTom");
		applicationScope.put("name","applicationTom");
		
		String[] names=(String[]) params.get("name");
		System.out.println(Arrays.toString(names));
		
		return SUCCESS;
	}</strong>


原生servlet操作三大域繁琐,struts2使用ActionContext去访问三大域。我们可以写更少的代码实现更多的功能。当然如果想获得原生servlet技术中的对象,也是可以得,但是灰常不建议那么用。


@Override
	public String execute() throws Exception 
	{
		//ServletActionContext对象 获得 原生的 Servlet对象
		HttpServletRequest request = ServletActionContext.getRequest();
		HttpServletResponse response =ServletActionContext.getResponse();
		HttpSession session = request.getSession();
		ServletContext context = ServletActionContext.getServletContext();
		return SUCCESS;
	}


你可能感兴趣的:(struts2访问三大域和参数)