Struts2获得ServletApi

原理

ActionContext相当于一个数据中心,本身是一个Map。其中存储着各种servlet的对象的引用,比如request,session,application等。因为一次访问action,创建一个ActionContext对象,那么如何保证ActionContext每次访问都可以获得对象?
ActionContext对象与ThreadLocal绑定.
实际上session等对象就是一个Map集合。

代码

public String testApiAction(){
        ActionContext context = ActionContext.getContext();
        Map session = context.getSession();
        session.put("name", "jose");
        context.put("age", 12);
        return SUCCESS;
    }
Struts2获得ServletApi_第1张图片
Snip20170811_3.png
![Uploading Snip20170811_5_600089.png . . .]

SESSION就是一个map中的key

Snip20170811_5.png

得到request对象

request一次请求,ActionContext也是一次请求,因此两者类似,就可以把ActionContext看成request对象。

Snip20170811_6.png

你可能感兴趣的:(Struts2获得ServletApi)