值栈ValueStack的原理与生命周期
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的原理与生命周期相关推荐
- 2011年9月19日 面试重点:asp.net运行原理和生命周期
面试重点:asp.net运行原理和生命周期 1.ispostback回调机制 isPostBack=false !IsPostBack==ture 当前页面是第一次加载 IsPostBack 由于用户 ...
- Servlet运行原理以及生命周期
Servlet运行原理 Servlet生命周期定义了一个Servlet如何被加载.初始化,以及它怎样接收请求.响应请求,提供服务.在讨论Servlet生命周期之前,先让我们来看一下这几个方法: 1. ...
- JavaWeb第一讲 Servlet的工作原理及生命周期
Servlet的工作原理及生命周期 (一)Tomcat容器模型 Servlet的运行离不开Tomcat,那我们先弄清楚Tomcat的容器模型. 由上图可以看出,在Tomcat下有一个Container ...
- React-Native原理及生命周期
2019独角兽企业重金招聘Python工程师标准>>> React-Native原理及组件生命周期 原理概述 React Native 不是黑科技,我们写的代码总是以一种非常合理,可 ...
- servlet运行原理和生命周期
servlet的生命周期分为3个阶段: 1初始化阶段:调用init方法 2响应客户请求阶段:调用service()方法 3终止阶段:调用destroy方法 servlet初始化阶段: 在下列时刻ser ...
- mysql序列号生成_超详细的mysql数据库GTID介绍—概念、优缺点、原理、生命周期等
概述 这几天就简单介绍一下GTID好了~这篇是概念篇.. 从MySQL 5.6.5 开始新增了一种基于 GTID 的复制方式.通过 GTID 保证了每个在主库上提交的事务在集群中有一个唯一的ID.这种 ...
- 什么是servlet ?简述servlet执行原理?生命周期是怎样的?
servlet就是一个接口,定义了java类被浏览器访问到(被Tomcat识别)的规则,主要负责接收浏览器的请求,tomcat服务器调用servlet方法.步骤:创建 一个javaEE项目,定义一个类 ...
- Servlet系列学习笔记1 --- Servlet工作原理和生命周期
目录 一.Servlet API概述 二.Servlet工作原理 三.Servlet接口 四.Servlet的生命周期 五.ServletRequest 六.ServletResponse Servl ...
- 11.3-全栈Java笔记:线程的生命周期
一个线程对象在它的生命周期内,需要经历5个状态. 新生状态(New) 用new关键字建立一个线程对象后,该线程对象就处于新生状态.处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态 ...
- servlet工作原理_Servlet 生命周期、工作原理
Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁. init():在Servlet的生命周期中,仅执行一次init()方法.它是在服务器装入Ser ...
最新文章
- 深入理解PHP原理之变量(Variables inside PHP)
- DBA_Oracle Database 11g 面向 DBA 和开发人员的重要特性
- python猜数游戏流程_python简单猜数游戏实例
- (转)在WCF服务的ServiceReferences.ClientConfig中使用相对路径
- vue实现查询多条记录_sql:多表查询
- 8_18 比赛总结 [暑假集训]
- STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、图像(硬件IIC)
- HDC.Cloud | 解秘一杯茶的物联之旅
- spring boot 学习之五(日志配置)
- 简单易懂的Android ROM定制与修改教程
- 打造最舒适的webview调试环境 1
- c语言单链表怎么循环链表,链表之循环单链表(用C语言描述)
- 微软MSDN原版所有系统合集我告诉你,Windows历史操作系统索引
- [转载]Java 2007:新年展望
- 懒人库ButterKnife的应用
- 如何关闭 window10 自带的杀毒软件
- OpenLayers6 裁切地图(Layer Clipping)
- 理解Spring Security中permitAll()和anonymous()的区别
- php抖音小程序登录后端代码
- 清除DataGridView的全部内容,包括标题行
热门文章
- linux python tab补全_Linux设置python自动tab自动补全
- 帝国7.2 php5.2,帝国CMS7.2版升级到7.5版的详细步骤方法(已测)
- cuda10安装_Mmdetection的安装和使用
- bui框架与php结合,bui框架前端自定义配色基础属性
- python交通调查数据处理_python数据分析--关于时间类型数据处理的一种方法
- 训练模型以识别文本中的情绪 3 NLP 零到英雄 Training a model to recognize sentiment in text
- 【ACM夏训】综合训练赛
- 2021-09-03相同的树
- 2021-09-02最小栈
- 局部敏感哈希(Locality Sensitive Hashing,LSH)