1、ValueStack贯穿整个 Action 的生命周期,保存在request域中,所以ValueStack和request的生命周期一样。当Struts2接受一个请求时,会迅速创建ActionContext, 
ValueStack,action。然后把action存放进ValueStack,所以action的实例变量可以被OGNL访问。 请求来的时候,action、ValueStack的生命开始,请求结束,action、    ValueStack的生命结束; 
2、action是多例的,和Servlet不一样,Servelt是单例的; 
3、每个action的都有一个对应的值栈,值栈存放的数据类型是该action的实例,以及该action中的实例变量,Action对象默认保存在栈顶; 
4、ValueStack本质上就是一个ArrayList; 
5、关于ContextMap,Struts 会把下面这些映射压入 ContextMap 中: 
parameters  :   该 Map 中包含当前请求的请求参数 
request     :   该 Map 中包含当前 request 对象中的所有属性  session :该 Map 中包含当前 session 对象中的所有属性 
application :该 Map 中包含当前 application 对象中的所有属性 
attr:该 Map 按如下顺序来检索某个属性: request, session, application          
6、使用OGNL访问值栈的内容时,不需要#号,而访问request、session、application、attr时,需要加#号; 
7、注意: Struts2中,OGNL表达式需要配合Struts标签才可以使用。如:<s:property value="name"/> 
8、在struts2配置文件中引用ognl表达式 ,引用值栈的值 ,此时使用的"$",而不是#或者%;

转载于:https://www.cnblogs.com/GtShare/p/9020051.html

值栈ValueStack的原理与生命周期相关推荐

  1. 2011年9月19日 面试重点:asp.net运行原理和生命周期

    面试重点:asp.net运行原理和生命周期 1.ispostback回调机制 isPostBack=false !IsPostBack==ture 当前页面是第一次加载 IsPostBack 由于用户 ...

  2. Servlet运行原理以及生命周期

    Servlet运行原理 Servlet生命周期定义了一个Servlet如何被加载.初始化,以及它怎样接收请求.响应请求,提供服务.在讨论Servlet生命周期之前,先让我们来看一下这几个方法: 1. ...

  3. JavaWeb第一讲 Servlet的工作原理及生命周期

    Servlet的工作原理及生命周期 (一)Tomcat容器模型 Servlet的运行离不开Tomcat,那我们先弄清楚Tomcat的容器模型. 由上图可以看出,在Tomcat下有一个Container ...

  4. React-Native原理及生命周期

    2019独角兽企业重金招聘Python工程师标准>>> React-Native原理及组件生命周期 原理概述 React Native 不是黑科技,我们写的代码总是以一种非常合理,可 ...

  5. servlet运行原理和生命周期

    servlet的生命周期分为3个阶段: 1初始化阶段:调用init方法 2响应客户请求阶段:调用service()方法 3终止阶段:调用destroy方法 servlet初始化阶段: 在下列时刻ser ...

  6. mysql序列号生成_超详细的mysql数据库GTID介绍—概念、优缺点、原理、生命周期等

    概述 这几天就简单介绍一下GTID好了~这篇是概念篇.. 从MySQL 5.6.5 开始新增了一种基于 GTID 的复制方式.通过 GTID 保证了每个在主库上提交的事务在集群中有一个唯一的ID.这种 ...

  7. 什么是servlet ?简述servlet执行原理?生命周期是怎样的?

    servlet就是一个接口,定义了java类被浏览器访问到(被Tomcat识别)的规则,主要负责接收浏览器的请求,tomcat服务器调用servlet方法.步骤:创建 一个javaEE项目,定义一个类 ...

  8. Servlet系列学习笔记1 --- Servlet工作原理和生命周期

    目录 一.Servlet API概述 二.Servlet工作原理 三.Servlet接口 四.Servlet的生命周期 五.ServletRequest 六.ServletResponse Servl ...

  9. 11.3-全栈Java笔记:线程的生命周期

    一个线程对象在它的生命周期内,需要经历5个状态. 新生状态(New) 用new关键字建立一个线程对象后,该线程对象就处于新生状态.处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态 ...

  10. servlet工作原理_Servlet 生命周期、工作原理

    Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁. init():在Servlet的生命周期中,仅执行一次init()方法.它是在服务器装入Ser ...

最新文章

  1. 深入理解PHP原理之变量(Variables inside PHP)
  2. DBA_Oracle Database 11g 面向 DBA 和开发人员的重要特性
  3. python猜数游戏流程_python简单猜数游戏实例
  4. (转)在WCF服务的ServiceReferences.ClientConfig中使用相对路径
  5. vue实现查询多条记录_sql:多表查询
  6. 8_18 比赛总结 [暑假集训]
  7. STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、图像(硬件IIC)
  8. HDC.Cloud | 解秘一杯茶的物联之旅
  9. spring boot 学习之五(日志配置)
  10. 简单易懂的Android ROM定制与修改教程
  11. 打造最舒适的webview调试环境 1
  12. c语言单链表怎么循环链表,链表之循环单链表(用C语言描述)
  13. 微软MSDN原版所有系统合集我告诉你,Windows历史操作系统索引
  14. [转载]Java 2007:新年展望
  15. 懒人库ButterKnife的应用
  16. 如何关闭 window10 自带的杀毒软件
  17. OpenLayers6 裁切地图(Layer Clipping)
  18. 理解Spring Security中permitAll()和anonymous()的区别
  19. php抖音小程序登录后端代码
  20. 清除DataGridView的全部内容,包括标题行

热门文章

  1. linux python tab补全_Linux设置python自动tab自动补全
  2. 帝国7.2 php5.2,帝国CMS7.2版升级到7.5版的详细步骤方法(已测)
  3. cuda10安装_Mmdetection的安装和使用
  4. bui框架与php结合,bui框架前端自定义配色基础属性
  5. python交通调查数据处理_python数据分析--关于时间类型数据处理的一种方法
  6. 训练模型以识别文本中的情绪 3 NLP 零到英雄 Training a model to recognize sentiment in text
  7. 【ACM夏训】综合训练赛
  8. 2021-09-03相同的树
  9. 2021-09-02最小栈
  10. 局部敏感哈希(Locality Sensitive Hashing,LSH)