struts2 ServletActionContext

structs2 中提供了ServletActionContext.getRequest()来获得当前请求的对象

看了下源码

public static HttpServletRequest getRequest() {
        return (HttpServletRequest) ActionContext.getContext().get(HTTP_REQUEST);
    }
 

他是去ActionContext的Context里面拿了,那这个Context是什么呢

static ThreadLocal actionContext = new ThreadLocal();

 果然是ThreadLocal

 

有人问

ServletActionContext.getRequest() 没有参数,又是静态方法,怎么能得到属于我的Request,线程安全吗?

其实参数就是你在服务器里的那个线程

你可能感兴趣的:(ActionContext)