zoukankan      html  css  js  c++  java
  • ActionContext-study

      ActionContext contex=ActionContext.getContext();

      Actioncontext是上下文是一个容器,存放着Action这执行时要用到的一些对象,

      如params,session,servletContext,本地化(Locale)信息等。

      在每次执行时都会创建新的ActionContext,是线程安全的,也就是说在同一个线程里

      ActionConctext是唯一的,这样我的Action就可以在多线程中使用

      

      public static ActionContext getContext() {

      ActionContext context = (ActionContext) actionContext.get();

      if (context == null) {

      OgnlValueStack vs = new OgnlValueStack();

      context = new ActionContext(vs.getContext());

      setContext(context);

      }

      return context;

      }

    一般情况,我们的ActionContext都是通过:ActionContext context = (ActionContext) actionContext.get();来获取的。我们再来看看这里的actionContext对象的创建:static ThreadLocal actionContext = new ActionContextThreadLocal();,ActionContextThreadLocal是实现ThreadLocal的一个内部类。ThreadLocal可以命名为“线程局部变量”,它为每一个使用该变量的线程都提供一个变量值的副本,使每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。这样,我们ActionContext里的属性只会在对应的当前请求线程中可见,从而保证它是线程安全的。

  • 相关阅读:
    PAT 1032 (未完成)
    PAT 1031
    PAT 1030
    将爬取到的数据存入数据框并导出
    XPath常见用法
    python 图表
    Protobuf在Unity中的通讯使用
    ProtoBuf在Unity中的使用
    Unity更新资源代码
    匿名函数
  • 原文地址:https://www.cnblogs.com/MyITRoad0916/p/5507633.html
Copyright © 2011-2022 走看看