struts2中,有四种方式获取request对象的方式,实现时有解耦和耦合之分
解耦:使得我们使用struts2测试时不需要启动服务器,在一定的程度上,能提高我们的开发效率.具体实现思路,通过ActionContext对象获取,代码如下:
-
//第一种获取requet对象方法---HttpServletRequest对象的attributes(解耦)
-
Map<String, Object> request = (Map)ActionContext.getContext().get("request");
-
//第二种获取request对象方法(解耦)
-
HttpServletRequest request = (HttpServletRequest)ActionContext.getContext().get(StrutsStatics.HTTP_REQUEST);
还有两种是以耦合的形式获得,
1.首先实现ServletRequestAware接口,然后设置全局变量HttpServletRequest request,最后实现ServletRequestAware接口的setServletRequest方法,代码如下:
HttpServletRequest request;
@Override
public void setServletRequest(HttpServletRequest request) {
// TODO Auto-generated method stub
this.request = request;
}
2.通过获取ServletActionContext获取HttpServletRequest对象,代码如下;
HttpServletRequest request = ServletActionContext.getRequest();