<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;
}