struts2的数据存放中心为ActionContext,其是每次请求来时都会创建一个ActionContext,访问结束销毁,其绑定在ThreadLocal上,由于每次访问web容器都会为每次请求创建一个独立的线程ThreadLocal,而ActionContext绑定在ThreadLocal上,所以各个ActionContext是相互独立和安全的,在ActionContext中还持有其他的域对象引用,如application,session等,ActionContext销毁时只销毁自己内部创建的如值栈,request等数据,而持有的引用主体并不会销毁,其持有其他域引用,主要是方便用户操作其他域API,其核心原理如下图所示,只是为了方便用户操作API,还据此提供了3种不同访问API的方式

1、通过ActionContext对象获取

页面获取还是和以前一样,直接在jsp页面通过EL表达式获取各个域中的值

2、通过ServletActionContext获取,这个其实就是struts2封装的一个工具类,为了更便捷的操作原生servletAPI,不过struts不推荐使用耦合的原生API,希望使用解耦的struts2的方式,不过内部都一样,只要喜欢用哪种都无所谓

下图为原生servletAPI获取方式:

3、实现接口的方式,这种方式最不推荐,其需要自己来实现这种常用接口,那还用框架干嘛,了解即可,如ServletRequestAware,后缀都是以Aware结尾的

最新文章

  1. jquery ui 中的插件开发
  2. navigator对象
  3. HDU-4527 小明系列故事——玩转十滴水 模拟
  4. Activiti系列:如何把Activiti工程转换为maven工程以解决依赖项找不到的问题
  5. https://github.com/akullpp/awesome-java
  6. 一个朋友js图表开发遇到的问题 解决思路c和js
  7. linux 系统获取网络ip, mask, gateway, dns信息小程序
  8. iOS中@class #import #include 简介
  9. UNION ALL
  10. poj 1604 Just the Facts
  11. ORACLE函数之日期时间运算函数
  12. JavaScript中var变量引用function与直接声明function
  13. __libc_csu_init函数的通用gadget
  14. PHPsocket、CURL、File_get_contents采集
  15. UOJ.26.[IOI2014]Game(交互 思路)
  16. 去n的第一个出现的1
  17. IntelliJ IDEA SVN
  18. 清除 Windows 系统垃圾的 bat
  19. max-sum-of-sub-matrix-no-larger-than-k
  20. Mac下Homebrew安装的软件放在什么地方

热门文章

  1. 绝对定位position: absolute;
  2. JDK之ThreadLocal分析
  3. 图像处理之Canny边缘检測
  4. 导出大量数据到excel表
  5. CSS Float浮动所带来的奇怪现象
  6. Linux下Solr的安装和配置
  7. CentOS 7.4 防火墙&网卡设置
  8. 前端基础-html(1)
  9. (4.11)sql server内存使用
  10. Webpack,Browserify和Gulp三者之间到底是怎样的关系