Struts2的Action中访问servletAPI方式
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方式相关推荐
- Struts2的action中处理JSONP方式提交的中文乱码问题:
昨天在做公司网站的时候出现了一个中文乱码问题,让我郁闷了一晚上和一上午,最后在网友的提示下,我终于解决了,现在写出来供后来的兄弟们参考: 1.问题是这样的,就是客户端是以JSONP的方式提交的数据,J ...
- struts2在Action中访问Session,管理员删除用户
结构如下: 当没有登录admin用户去删除时: 当登录admin用户删除时: 首先是一个Servlet: LoginServlet.java package my;import java.io.IOE ...
- java struts2 ajax_在struts2的Action中返回Ajax数据
author:z_xiaofei168 如何在struts2的action中返回数据(普通字符串.图片)给ajax核心中的XMLHttpRequest对象. 今天下午做项目,就是用户注册是时候,登录名 ...
- struts2的action中获得request response session 对象
在struts2中有两种方式可以得到这些对象 1.非IoC方式 要获得上述对象,关键Struts 2中com.opensymphony.xwork2.ActionContext类.我们可以通过它的静态 ...
- struts2实验2:struts2.xml action中* ,{}以及${}
p.s 关键在于struts.xml中的匹配,使用* ,{}以及${}可以让代码更加简洁清晰 代码核心思路 在struts.xml中通过路由(url)去指定控制逻辑的Action中的方法,例如 < ...
- 【struts2】action中使用通配符
在以前的学习中,<action>元素的配置,都是用明确的配置,其name.class等属性都是一个明确的值.其实Struts2还支持class属性和method属性使用来自name属性的通 ...
- struts2在action中获取request、session、application,并传递数据
假设仅仅是通过request.session.application传递数据,则不须要获取对应的对象也能够传递数据,代码例如以下: ScopeAction.java: package com.ithe ...
- 在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值
第一种方法:获取结果String类型 在 Action 中获得的是一个 String 型数据,每一个被选中的 checkbox 的 value 被拼接在一起,每个值之间以逗号隔开(,). 所以在 ...
- struts2:在Action中使用Servlet的API,设置、读取各种内置对象的属性
有两种方式可以实现在Action中使用Servlet的API.一种是使用org.apache.struts2.ServletActionContext类,另一种是使用com.opensymphony. ...
最新文章
- 北汽蓝谷和北汽新能源
- anaconda切换python版本及对应环境,太方便
- sudo 命令表示 Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。 使用权限:在 /etc/sudoers 中有出现的使用
- 『参考』使用.net CF自带库判断设备的连接状态
- 常考数据结构与算法:单链表的排序
- HYSBZ-1951 古代猪文 【好题】
- jsp分割字符串并遍历
- C语言读取图像像素坐标,OpenCL中读取image时的坐标
- centos安装python3.7和yum报错解决方法
- 图片在mysql中的储存_如何在MySQL中直接储存图片
- 免费微信小程序商城源代码,基于Uni-App,实现一码多端
- 遍历目录下的所有文件(文件)
- gta5怎么设置画质最好_GTA5画面如何设置最好_GTA5画质设置成最高配置推荐-win7之家...
- 零代码也能玩转指标系列:通过界面也能实现指标的四则运算
- 长文:读《经济学32定律》
- linux中rcf命名管道,RCF的简单使用教程以及什么是回调函数
- Buffer之position,limit,capacity
- 数学建模比赛经验总结
- 没想到国美竟然用oracle的团队来搭建电商平台
- 武侠小说大全隐私政策