zoukankan      html  css  js  c++  java
  • 十八、ValueStack&ActionContext(非常重点:值栈)

    1. ValueStack&ActionContext(非常重点:值栈)

      1、针对用户的每次动作访问,都会创建属于自己的ValueStack对象

      2、ValueStack中的的常用方法:功能一定要知道干什么的。实现类OgnlValueStack

    • getContext():返回的是一个Map<String,Object>
    • *getRoot():返回的是一个CompoundRoot。

      CompoundRoot就是一个ArrayList的子类(就是一个List)。实现了一个栈结构

      CompoundRoot():默认的构造方法。实际就是创建一个List集合

      CompoundRoot(List):用一个集合来初始化一个CompoundRoot对象

      cutStack(int):按照集合中的索引,剪出一个的List集合

      peek():取集合中的第一个元素。get(0)

      pop():从集合中删除第一个元素

      • push(Object):向集合中的第一个元素位置插入数据
        peek():CompoundRoot中的第一个元素。get(0)
      • pop():从CompoundRoot集合中删除第一个元素
      • push(Object):向CompoundRoot集合中的第一个元素位置插入数据
      • size():获取 CompoundRoot这个集合的大小
      • setValue(String,Object):第一个参数,是OGNL表达式。向自己(getContext())得到那个Map中尝试放东西。
      • setParameter(String,Object):第一个参数,是OGNL表达式。向自己(getContext())得到那个Map中尝试放东西。
      • findString(String expr):返回的是一个String类型的,否则报错.第一个参数,是OGNL表达式。
      • findValue():返回的是一个Object。第一个参数,是OGNL表达式。

       

      3、ActionContext


      static ThreadLocal<ActionContext> actionContext = new ThreadLocal<ActionContext>();

      每个线程都会有唯一的ActionContext,且一个线程中只有一个ActionContext。

      getApplication():返回的是一个Map

      getContext():放回的当前线程上的ActionContext对象

      getContextMap():返回ActionCOntext中的那一个Map

      getParameters():返回的是一个Map

      getSession():返回的是一个Map

      getValueStack():返回的是当前线程中的ValueStack实例

      get(String):从ActionContext的Map中获取数据

       

      最终总结:

      4、ServletActionContext决定contextMap中会存哪些数据

      总结:都是从ActionContext的那个大Map中获取的。

       

      5、在执行动作方法前,contextMap中放了以下东西

      contextMap

       

      key 

      value 

      备注

      request

      ServletRequest中的那个Map

       

      session

      HttpSession中的那个Map

       

      application

      ServletContext中的那个Map

       

      parameters

      请求参数Map<String,String[]>

       

      attr

      也是一个AttributeMap

      获取数据依次从contextMap中的requestMap、sessionMap、applicationMap中搜索

         

       

  • 相关阅读:
    名信片定做网站
    [置顶] 数据库开发常识
    <IMG>中UserMap的用法
    阿斯钢iojeg9uhweu9erhpu9hyw49
    慎得慌二u赫然共和任务i个屁
    阿斯钢iojeg9uhw8uhy平
    2014校园招聘笔、面经历总结---华为双选会
    PDCA模型的学习
    阿斯钢 弇7人后偶尔一个味5而已
    【HTML】让<pre>标签文本自动换行
  • 原文地址:https://www.cnblogs.com/Prozhu/p/5886477.html
Copyright © 2011-2022 走看看