首页 技术 正文
技术 2022年11月23日
0 收藏 991 点赞 4,169 浏览 1491 个字
  1. ValueStack&ActionContext(非常重点:值栈)

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

    十八、ValueStack&ActionContext(非常重点:值栈)

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

    十八、ValueStack&ActionContext(非常重点:值栈)

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

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

    十八、ValueStack&ActionContext(非常重点:值栈)

    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。

    十八、ValueStack&ActionContext(非常重点:值栈)

    getApplication():返回的是一个Map

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

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

    getParameters():返回的是一个Map

    getSession():返回的是一个Map

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

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

     

    最终总结:

    十八、ValueStack&ActionContext(非常重点:值栈)

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

    十八、ValueStack&ActionContext(非常重点:值栈)

    总结:都是从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中搜索

         

     

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,958
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,482
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,328
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,111
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,743
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,777