Struts2操作Request、Session和App…

单片机通识之UART通信协议(如何用汇编实现) 使用汇编实现UART通信 阅读详情

Strtus2通常情况下使用以下两种方式来访问上述三种对象,即Servlet API解藕和耦合的访问方式。

1.Servlet API解藕方式:

Struts2分别对Request、Session和Application三个对象封装成了三个Map对象,直接使用封装好的Map对象来读取和保存数据。可以通过com.opensymphony.xwork2.ActionContext类来得到这三个对象。ActionContext是Action执行的上下文,保存了很多对象如parameters、request、session、application和locale等。通过ActionContext类获取Map对象的方法为:

ActionContext context=ActionContext.getContext(); --得到Action执行的上下文

Map request=(Map)context.get("request");--得到HttpServletRequest的Map对象 

Map session=context.getSession();--得到HttpSession的Map对象

Map application=context.getApplication();--得到ServletContext的Map对象

除了利用ActionContext来获取request、session和application对象这种方式外,Action类还可以实现某些特定的接口,让Struts 2框架在运行时向Action实例注入request、session和application对象。这种方式也就是IOC方式,与之对应的三个接口和它们的方法如下所示:

public class SampleAction implements Action,
RequestAware, SessionAware, ApplicationAware
{
private Map request;
private Map session;
private Map application;

@Override
public void setRequest(Map request)
{this.request = request;}

@Override
public void setSession(Map session)
{this.session = session;}

@Override
public void setApplication(Map application)
{this.application = application;}

}
2.Servlet API耦合方式:

直接访问Servlet API将使你的Action与Servlet环境耦合在一起,要直接获取HttpServletRequest和ServletContext对象,可以使用org.apache.struts2.ServletActionContext类,该类是ActionContext的子类。通过ServletActionContext类获取三个对象的方法为:  

HttpServletRequest request = ServletActionContext.getRequest();--得到HttpServletRequest对象   

HttpSession session = request.getSession();--得到HttpSession对象    

ServletContext context = ServletActionContext.getServletContext();--得到ServletContext对象

除了上述的方法调用得到HttpServletRequest和ServletContext对象外,还可以调用ActionContext对象的get()方法,传递ServletActionContext.HTTP_REQUEST和ServletActionContext.SERVLET_CONTEXT键值来得到HttpServletRequest和ServletContext对象,如下所示:

ActionContext  ctx= ActionContext.getContext();

HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);  

 HttpSession session = request.getSession();

ServletContext context = (ServletContext)ctx.get(ServletActionContext.SERVLET_CONTEXT);

复现CVE-2014-085(Apache ZooKeeper 未授权访问漏洞) 默认安装配置完的zookeeper允许未授权访问,管理员未配置访问控制列表(ACL)。导致攻击者可以在默认开放的2181端口下通过执行envi命令获得大量敏感信息(系统名称、java环境)导致任意用户可以在网络不受限的情况下进行未授权访问读取数据。 阅读详情

相关推荐

台积电技术研发实力

台积电技术研发实力 台积电在半导体行业的地位毋庸置疑。他们究竟有多强大,大部分读者了解得可能非常片面。从最新公布的2019年财报里,看看台积电的真正实力。 一、台积电在市场上的地位 根据公司财报,台积公司在先进制程技术、特殊制程技术,以及先进封装技术的发展上持续领先全球集成电路制造服务领域,2019年的市场占有率为52%。台积公司总体营收以地区划分(主要依据客户营运总部所在地),来自北美市场的营收占台积公司总体营收的60%、日本与中国大陆以外的亚太市场占9%、中国大陆市场占20%、欧洲、中东及非洲市场占6

吴建明wujianming_110117 1901

Request、session 和 application的区别

1. request( 请求作用域 )对象内数据存活范围是当客户端向服务器发送一个请求,服务器向客户端返回一个响应之后,该请求对象就被销毁了。之后再次发送的请求也无法获取之前request对象存放的任何数据。 request的setAttribute和getAttribute方法一般成对出现。都是在服务器端内部执行的,客户端不知道服务器端是否执行过。 request的getParameter()方法的作用是获取到客户端。通过表单或url请求参数发送的参数值...

m0_54241271的博客 6421

手把手教你用Synopsys AHB VIP搭建验证环境:从SINGLE到WRAP16的完整波形分析与避坑指南

本文详细介绍了如何使用Synopsys AHB VIP搭建验证环境,从基础配置到复杂波形调试实战。重点解析了AHB协议中各种Burst类型的地址计算机制,包括INCR和WRAP类型,并提供了实际案例和避坑指南,帮助工程师快速掌握验证技巧。

weixin_42552716的博客 414

request、session 和 application的区别

request、session 和 application的区别

weixin_62275996的博客 1978

关于石墨烯费米能级和偏置电压之间的关系问题

石墨烯费米能级与电压的关系问题

qq_37946542的博客 3514

窥秘Windows 10:SAM密码破解

Windows 10作为广受欢迎的操作系统,拥有一套强大的安全措施来保护用户账号和数据安全。然而,有时候我们需要了解更多关于密码破解的知识,以加强我们的防护措施。本文将深入探讨如何突破Windows 10的SAM密码,以便更好地了解密码安全性并加强系统的保护。

Sgirll的博客 6844

struts2取得request,session,appilcation的方法

Map类型——request,session,application 真实类型——HttpServletRequest,HttpSession,ServletContext Map类型是Struts对真实类型的一个封装,会将真实类型映射到Map类型中 取得上述元素有以下4种方法 1 通过ActionContext来访问request,session,application对象 2

hello,黑豆先生 2037

强化学习实战——OpenAI Gym环境配置+实战演示(win10)

遇到问题:无法安装pickle5原因是:python3.8与该包不兼容,必须降python3.7的版本。

LZL2020LZL的博客 4899

浅谈:request,session,application

request,session,application,三者比较 作用域:: request 各自对应的接口 request对象 对应的接口 : javax.servlet.ServletRequest 其子接口:javax.servlet.http.HttpServletRequest session对象 对应的接口 :javax.servlet.htt

Super的专栏 3万+

W5500以太网&PoE扩展模块原理图设计,已量产

本文将以 W5500 以太网 & PoE 扩展板为对象,从嵌入式硬件设计的视角,深度拆解其电路架构、核心器件选型、关键功能实现,以及这款板子解决行业痛点的设计思路。

不脱发的程序猿 944

【WRF-Urban】使用 NUDAPT 数据集与 BEP/BEP_BEM 方案的 WRF 配置指南

【WRF-Urban】使用 NUDAPT 数据集与 BEP/BEP_BEM 方案的 WRF 配置指南

WW、forever的博客 1964

struts2中访问和添加Application、session以及request属性

一、访问或添加Application、session、request属性 《一》方式一 HelloWorldAction类中添加如下代码 //此方法适用于仅对Application、session、request对象添加属性值 public String execute(){ //访问或添加Application、session、request属性

幽林孤狼 524

定位分析RCU stall问题

在编译内核时打开或者在启动参数中增加这样统计信息是在采样周期中收集的。其中number行分别是发生stalled的cpu上的硬中断,软中断,和上下文的切换次数cputime行的前三列分别是硬中断,软中断和任务消耗的cpu时间,单位为ms.最后一个数字是统计的周期时间(ms).因为用户态的任务通常不会引起RCU CPU stalls,所以任务通常是内核任务,这也是为什么只统计system cpu的原因.

happyAnger6的专栏 1994

struts2 获取request、session的方法

一,获取方式: 从Servlet容器中获取的方法与Servlet容器无关的获取方法 IoC方式非Ioc方式 二,获取方法 2.1 与servlet无关: 2.1.1 非IoC模式 Java代码 ActionContext context ;//该方法还可以取得值栈(getValueStack()),使用push(obj)往值栈中放数据 Map r...

weixin_30906671的博客 98

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

struts2 获取request,session,application

<br />获取request、session的方法 <br /><br />  2.1 与servlet无关: <br /><br />  2.1.1 非IoC模式 <br /><br />  Java代码 <br /><br />  ActionContext context ;//该方法还可以取得值栈(getValueStack()),使用push(obj)往值栈中放数据 <br /><br />  Map request ; <br /><br />  Map session ; <br /><br

FarAwayHome的专栏 2139

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

struts2获取request,session,application

 获取request、session的方法 2.1 与servlet无关:      2.1.1 非IoC模式 Java代码 ActionContext context ;//该方法还可以取得值栈(getValueStack()),使用push(obj)往值栈中放数据    Map request ;    Map session ;    Map

必应@珠峰 3082

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Struts2访问和添加Application、request、session属性介绍

向Application、request、session添加属性值 ActionContext ac=ActionContext.getContext(); //获取ActionContext ac.getApplication().put("app",”application范围“); ac.getSession().put("ses",”session范围“); ac.put("req",”...

专注Java后端技术干货、项目源码总结分享,期待您的关注。 279

struts2在Action中访问request、session、application属性

在struts1中,获得到系统的request、session或者application对象非常方便,都是按照形参传递的,但是在struts2中,request、session和application都被隐藏了。       struts提供两种方式访问session、request和application对象,即IOC方式和非IOC方式,其中比较常用的是利用SPRING里面所说的IOC即控制反

雾里看花 1万+

struts2关于request、session和application

   1、访问或添加request/session/application属性(此种方式适合仅仅是往3个范围放入属性) public String execute() { //此种方式适合仅仅是往3个范围放入属性 ActionContext act = ActionContext.getContext(); act.getApplication().put("app", "ap...

iteye_16935的博客 190

struts2如何获取Request-Session-ServletContext-Response

1. 访问和添加request/session/application属性    如果只是往request/session/application中设置属性,可以用下面的方式     Java代码   ActionContext ctx = ActionContext.getContext();    ctx.getApplication().put("app", "应用范围");

程序员!我当定了! 2339

struts2在Action中获取Scope中的对象request、session、application

一、描述        在Action操作中,关键就是Action中的exectue方法,但是此方法并没有request、session、application等对象作为参数,自然就不能利用这些对象来操作,下面我们用四种方式来获取这些对象: 方式一、与Servlet解耦合的非IOC方式 获取的scope对象与容器无关,通过ActionContext获取。 LoginAction代码如下:

永不言弃! 2694

struts2的action中获得request response session

session用于存放跨请求的变量,如用户A登录后,系统要记录他的登录信息,在用户访问网站的整个过程中,一直需要记录着,就应该放到session中。 而request则是一次请求,比如用户请求查看某个产品的信息,产品信息只需要在这次请求中显示出来,用户访问其他页面时,不需要知道这个产品的信息,那就应该放在request中。 在struts2中有两种方式可以得到这些对象

WarcraftJimmy的专栏 916

Struts2获取request、session的方法

<br />获取request、session的方法<br />2.1 与servlet无关: <br />   2.1.1 非IoC模式<br />Java代码 <br />ActionContext context ;//该方法还可以取得值栈(getValueStack()),使用push(obj)往值栈中放数据 <br />Map request ; <br />Map session ; <br />Map application ; <br />//以下初始化方法要放在方法中 <br />cont

雨过天晴-欢迎光临 787

Struts学习笔记:request,session,application的创建

1.method 解耦(map)的方式创建。此方法创建 的request,session,application只有存储键值队和作用域的特性,不具有httpservlet对应的方法,该方法有两种创建 方式 A、直接获取,通过ActionContext类获取request,session,application 但是request并不能直接获取可调用get(“request”);方法实现一个存放 r

麦特斯的博客 419

Struts2 在Action中获取request、session、servletContext的三种方法

首页message.jsp: <body> ${requestScope.req }<br/> ${applicationScope.app }<br/> ${sessionScope.ses }<br/> </body> (1)使用ActionContext获取 ...

161

struts2中获取request/session/application

1。访问或添加request/session/application属性 将前一篇文件中的TestAction中的代码修改为如下所示: Java代码   public class TestAction {        public String execu

张彬在奋斗 964
上一篇: 求出1+2+3+...n&lt;8888&nbsp;中的最大的n…
下一篇: Struts2中iterator标签遍历m…
jarry.liu
博客等级 码龄16年 36粉丝 304原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jarry.liu

如果对您有帮助,鼓励下博主吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值