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结尾的

转载于:https://www.cnblogs.com/javabg/p/7293982.html

Struts2的Action中访问servletAPI方式相关推荐

  1. Struts2的action中处理JSONP方式提交的中文乱码问题:

    昨天在做公司网站的时候出现了一个中文乱码问题,让我郁闷了一晚上和一上午,最后在网友的提示下,我终于解决了,现在写出来供后来的兄弟们参考: 1.问题是这样的,就是客户端是以JSONP的方式提交的数据,J ...

  2. struts2在Action中访问Session,管理员删除用户

    结构如下: 当没有登录admin用户去删除时: 当登录admin用户删除时: 首先是一个Servlet: LoginServlet.java package my;import java.io.IOE ...

  3. java struts2 ajax_在struts2的Action中返回Ajax数据

    author:z_xiaofei168 如何在struts2的action中返回数据(普通字符串.图片)给ajax核心中的XMLHttpRequest对象. 今天下午做项目,就是用户注册是时候,登录名 ...

  4. struts2的action中获得request response session 对象

    在struts2中有两种方式可以得到这些对象 1.非IoC方式 要获得上述对象,关键Struts 2中com.opensymphony.xwork2.ActionContext类.我们可以通过它的静态 ...

  5. struts2实验2:struts2.xml action中* ,{}以及${}

    p.s 关键在于struts.xml中的匹配,使用* ,{}以及${}可以让代码更加简洁清晰 代码核心思路 在struts.xml中通过路由(url)去指定控制逻辑的Action中的方法,例如 < ...

  6. 【struts2】action中使用通配符

    在以前的学习中,<action>元素的配置,都是用明确的配置,其name.class等属性都是一个明确的值.其实Struts2还支持class属性和method属性使用来自name属性的通 ...

  7. struts2在action中获取request、session、application,并传递数据

    假设仅仅是通过request.session.application传递数据,则不须要获取对应的对象也能够传递数据,代码例如以下: ScopeAction.java: package com.ithe ...

  8. 在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值

    第一种方法:获取结果String类型   在 Action 中获得的是一个 String 型数据,每一个被选中的 checkbox 的 value 被拼接在一起,每个值之间以逗号隔开(,). 所以在 ...

  9. struts2:在Action中使用Servlet的API,设置、读取各种内置对象的属性

    有两种方式可以实现在Action中使用Servlet的API.一种是使用org.apache.struts2.ServletActionContext类,另一种是使用com.opensymphony. ...

最新文章

  1. 北汽蓝谷和北汽新能源
  2. anaconda切换python版本及对应环境,太方便
  3. sudo 命令表示 Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。 使用权限:在 /etc/sudoers 中有出现的使用
  4. 『参考』使用.net CF自带库判断设备的连接状态
  5. 常考数据结构与算法:单链表的排序
  6. HYSBZ-1951 古代猪文 【好题】
  7. jsp分割字符串并遍历
  8. C语言读取图像像素坐标,OpenCL中读取image时的坐标
  9. centos安装python3.7和yum报错解决方法
  10. 图片在mysql中的储存_如何在MySQL中直接储存图片
  11. 免费微信小程序商城源代码,基于Uni-App,实现一码多端
  12. 遍历目录下的所有文件(文件)
  13. gta5怎么设置画质最好_GTA5画面如何设置最好_GTA5画质设置成最高配置推荐-win7之家...
  14. 零代码也能玩转指标系列:通过界面也能实现指标的四则运算
  15. 长文:读《经济学32定律》
  16. linux中rcf命名管道,RCF的简单使用教程以及什么是回调函数
  17. Buffer之position,limit,capacity
  18. 数学建模比赛经验总结
  19. 没想到国美竟然用oracle的团队来搭建电商平台
  20. 武侠小说大全隐私政策

热门文章

  1. 迈腾车能进2.10米宽的车库吗?
  2. 音乐陶冶情操,怎样让孩子喜欢音乐?
  3. 年轻人,被领导骂是怎样一种感觉?
  4. 北方方言的拼音及解释
  5. 初步看,我要在公司赚取更多的工资,钱多活少离家近
  6. 什么样的生意一本万利?
  7. 有没有能把excel表弄成线上多人填报的办法?
  8. binary.Write 小坑一个兼论go的错误处理哲学
  9. Build a simple Ethereum + IPFS+ React.js DApp.
  10. to_sql用法示例_SQL Union概述,用法和示例