美文网首页
struts2 获取web资源的两种方式

struts2 获取web资源的两种方式

作者: 金发萌音 | 来源:发表于2014-08-15 19:04 被阅读242次

一个struts2的请求就是一个action
能够处理struts2请求的类就是Action类

获取web资源的方法:(松耦合)

通过ActionContext获取

ActionContext 是action的执行上下文对象 ,可在一个ActionClass中获取action实例的上下文

ActionContext actionContext = ActionContext.getContext();

Map<String,Object> applicationMap = actionContext.getAppliction();

aplicationMap.put("applicationKey","applicationValue");

//相同的还有

Map<String,Object> sessionMap = actionContext.getSession();

sessionMap.put("sessionKey","sessionvalue");

//获取request比较特殊,strurs2并没有提供该方法,所以要手动来获取

Map<String,Object> requsetMap = (Map<String,object) actionContext.get("request");

requestMap.put("requestKey","requestValue");

//获取链接中的参数

Map<String,Object> parametersMap = actionContext.getParameters();

(String[]) parametersMap.get("name")[0];

//parameters只能读 不能写入数据 


通过Aware 接口获取

public class TestAware implements ApplicationAware, SessionAware, RequestAware{
    public String execute(){
        //添加一个属性
        application.put("applicationKey","applicationValue");

        //获取一个属性
        Object data = application.get("data");
        return "success";
    }

    private Map<String,Object> application;
    @override
    public void setApplication(Map<String,Object> application){
        this.application = application;
    }
}

需要注意的是 session 对应的Map是SessionMap类型的,通过强转后调用其invalidate()方法会使其失效

SessionMap sm = (SessionMap) sessionMap;
sm.invalidate();

获取web资源的方法(与servlet紧耦合)

相关文章

网友评论

      本文标题:struts2 获取web资源的两种方式

      本文链接:https://www.haomeiwen.com/subject/zzmetttx.html