代码江湖之勇闯天涯——struts2——ContextMap

  1. 动作类生命周期:
    明确:动作类是多例的,每次访问动作方法时,动作类都会实例化,所以是线程安全的。
  2. 请求动作的数据存放:
    我们的问题:
    每次请求时,都会产生一些请求数据,这些数据都存放在什么地方了呢?
    首先我们要明确一点:
    在每次执行动作前,核心控制器StrutsPrepareAndExecuteFilter都会创建一个ActionContext和ValueStack对象。且每次访问动作都会创建。
    这两个对象存储了整个动作访问期间用到的数据。并且把数据绑定到了线程局部变量(ThreadLocal)上了。所以线程是安全的。

Context Map是OGNL的上下文ActionContext ValueStack
包含以下方面:

  • ActionContext 一个Map,这就类似于keyedHandler结构
  • application 是一个Map,封装着应用域的属性
  • session 是一个Map,封装着会话域的属性
  • request 是一个Map,封装着请求域的属性
  • parameters 是一个Map,封装着请求正文(参数)的属性
  • attr 是一个Map,封装着四个域中的所有属性
  • value stack(root)
  • action(the current action) 当前动作的引用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概述 什么是Struts2的框架Struts2是Struts1的下一代产品,是在 struts1和WebWork的...
    inke阅读 6,727评论 0 50
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,540评论 11 349
  • action中如何接受页面传过来的参数 第一种情况:(同名参数) 例如:通过页面要把id=1 name=tom a...
    清枫_小天阅读 8,406评论 1 22
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,224评论 19 139
  • 各位亲爱的书友,今天这本书是《异想,天开,极富创造力的人做的10件与众不同的事》。我们每一个人都希望让生活变得丰富...
    超级连接者王学勇阅读 9,171评论 0 3

友情链接更多精彩内容