美文网首页
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