通过ActionContext获取request session application 以及ActionContext的简单解析「建议收藏」

通过ActionContext获取request session application 以及ActionContext的简单解析「建议收藏」ActionContext:action的上下文对象。获取application://获取ActionContext对象是action的上下文对象ActionContextactionContext=ActionContext.getContext();//获取到application对应的map并且向其中添加一个属性Map<String,Obj…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

ActionContext:action的上下文对象。

获取application :

// 获取ActionContext对象    是action的上下文对象
ActionContext actionContext = ActionContext.getContext();

// 获取到application对应的map 并且向其中添加一个属性
Map<String, Object> map = actionContext.getApplication();
map.put("applicationKey", "applicationValue");

获取session:

// session
Map<String, Object> _map = actionContext.getSession();
_map.put("sessionKey", "sessionValue");

获取request:

     疑问:但是我们去编写程序时却发现   ActionContext并没有提供像获取session,application的方法  那我们是否可以通过session来获取呢  答案:不能。那这样的我们就没办法了。这个时候我们需要看下ActionContext的源码。

  1.  先看一下getSession的这个方法吧

 

// ActionContext方法调用getSession返回一个map  内部调用了get方法  参数是个SESSION
// SESSION:"com.opensymphony.xwork2.ActionContext.session";
public Map<String, Object> getSession() {
        return (Map<String, Object>) get(SESSION);
}

    2. 再看一下getApplication方法

// 也是内部调用了get()  参数APPLICATION
// APPLICATION:"com.opensymphony.xwork2.ActionContext.application";
public Map<String, Object> getApplication() {
        return (Map<String, Object>) get(APPLICATION);
}

以上源码:有一些规律  都是调用get方法  传了一个参数   那么 获取request对象 是否 也是需要调用get方法然后参数是个常量呢 ,但是最终找了一遍,确实没有遵循传入常量的符合方法  但是:

 // 可以看出ActionContext对象是个map
 public Object get(String key) {
        return context.get(key);
 }

结论: 也就说ActionContext对象的内部结构是map嵌套map, session等对象是放在actionContext的value中.那么我们可以通过debug来获取ActionContext对象吧  通过我们也要根据actionContext的session结构  差不多分析出来 request在actionContext的存放   应该是类似。

通过ActionContext获取request session application 以及ActionContext的简单解析「建议收藏」

{com.opensymphony.xwork2.ActionContext.locale=zh_CN, request={struts.actionMapping=ActionMapping{name='index', namespace='/', method='null', extension='action', params=null, result=null}, __cleanup_recursion_counter=1, struts.valueStack=com.opensymphony.xwork2.ognl.OgnlValueStack@ef74f84}, struts.actionMapping=ActionMapping{name='index', namespace='/', method='null', extension='action', params=null, result=null}, com.opensymphony.xwork2.ActionContext.actionInvocation=com.opensymphony.xwork2.DefaultActionInvocation@742c6377, session={}, xwork.NullHandler.createNullObjects=false, com.opensymphony.xwork2.util.ValueStack.ValueStack=com.opensymphony.xwork2.ognl.OgnlValueStack@ef74f84, com.opensymphony.xwork2.dispatcher.HttpServletRequest=org.apache.struts2.dispatcher.StrutsRequestWrapper@5f2d6a4a, com.opensymphony.xwork2.dispatcher.HttpServletResponse=org.apache.catalina.connector.ResponseFacade@4cb71783, com.opensymphony.xwork2.ActionContext.container=com.opensymphony.xwork2.inject.ContainerImpl@7888eafe, com.opensymphony.xwork2.ActionContext.parameters={}, com.opensymphony.xwork2.dispatcher.ServletContext=org.apache.catalina.core.ApplicationContextFacade@6f280943, com.opensymphony.xwork2.ActionContext.application={org.apache.jasper.compiler.TldCache=org.apache.jasper.compiler.TldCache@669792bb, javax.servlet.context.tempdir=F:\stsWorkSpace1\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\work\Catalina\localhost\ROOT, freemarker.Configuration=freemarker.template.Configuration@7e1df4ad, org.apache.jasper.runtime.JspApplicationContextImpl=org.apache.jasper.runtime.JspApplicationContextImpl@5a3887e2, org.apache.catalina.jsp_classpath=/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/annotations-api.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/catalina-ant.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/catalina-ha.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/catalina-storeconfig.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/catalina-tribes.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/catalina.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/ecj-4.6.1.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/el-api.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/jasper-el.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/jasper.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/jaspic-api.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/jsp-api.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/servlet-api.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-api.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-coyote.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-dbcp.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-i18n-es.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-i18n-fr.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-i18n-ja.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-jdbc.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-jni.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-util-scan.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-util.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-websocket.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/websocket-api.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/resources.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/rt.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/jsse.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/jce.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/charsets.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/jfr.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/bin/bootstrap.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/bin/tomcat-juli.jar;/C:/Program Files/Java/jdk1.8.0_181/lib/tools.jar;/F:/开发专用/sts1/sts-bundle/sts-3.9.5.RELEASE/configuration/org.eclipse.osgi/316/0/.cp/lib/javaagent-shaded.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/access-bridge-64.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/cldrdata.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/dnsns.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/jaccess.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/jfxrt.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/localedata.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/mysql-connector-java-5.1.6.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/nashorn.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/sunec.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/sunjce_provider.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/sunmscapi.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/sunpkcs11.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/zipfs.jar, javax.websocket.server.ServerContainer=org.apache.tomcat.websocket.server.WsServerContainer@474475e6, org.apache.tomcat.InstanceManager=org.apache.catalina.core.DefaultInstanceManager@333d78a6, applicationKey=applicationValue, org.apache.jasper.compiler.ELInterpreter=org.apache.jasper.compiler.ELInterpreterFactory$DefaultELInterpreter@773eb86d, org.apache.catalina.resources=org.apache.catalina.webresources.StandardRoot@3f31ff7c, org.apache.tomcat.JarScanner=org.apache.tomcat.util.scan.StandardJarScanner@3e372e87}, com.opensymphony.xwork2.ActionContext.session={}, application={org.apache.jasper.compiler.TldCache=org.apache.jasper.compiler.TldCache@669792bb, javax.servlet.context.tempdir=F:\stsWorkSpace1\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\work\Catalina\localhost\ROOT, freemarker.Configuration=freemarker.template.Configuration@7e1df4ad, org.apache.jasper.runtime.JspApplicationContextImpl=org.apache.jasper.runtime.JspApplicationContextImpl@5a3887e2, org.apache.catalina.jsp_classpath=/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/annotations-api.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/catalina-ant.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/catalina-ha.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/catalina-storeconfig.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/catalina-tribes.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/catalina.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/ecj-4.6.1.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/el-api.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/jasper-el.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/jasper.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/jaspic-api.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/jsp-api.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/servlet-api.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-api.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-coyote.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-dbcp.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-i18n-es.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-i18n-fr.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-i18n-ja.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-jdbc.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-jni.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-util-scan.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-util.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/tomcat-websocket.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/websocket-api.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/resources.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/rt.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/jsse.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/jce.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/charsets.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/jfr.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/bin/bootstrap.jar;/F:/开发专用/tomcat/apache-tomcat-8.5.12/bin/tomcat-juli.jar;/C:/Program Files/Java/jdk1.8.0_181/lib/tools.jar;/F:/开发专用/sts1/sts-bundle/sts-3.9.5.RELEASE/configuration/org.eclipse.osgi/316/0/.cp/lib/javaagent-shaded.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/access-bridge-64.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/cldrdata.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/dnsns.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/jaccess.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/jfxrt.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/localedata.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/mysql-connector-java-5.1.6.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/nashorn.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/sunec.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/sunjce_provider.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/sunmscapi.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/sunpkcs11.jar;/C:/Program Files/Java/jdk1.8.0_181/jre/lib/ext/zipfs.jar, javax.websocket.server.ServerContainer=org.apache.tomcat.websocket.server.WsServerContainer@474475e6, org.apache.tomcat.InstanceManager=org.apache.catalina.core.DefaultInstanceManager@333d78a6, applicationKey=applicationValue, org.apache.jasper.compiler.ELInterpreter=org.apache.jasper.compiler.ELInterpreterFactory$DefaultELInterpreter@773eb86d, org.apache.catalina.resources=org.apache.catalina.webresources.StandardRoot@3f31ff7c, org.apache.tomcat.JarScanner=org.apache.tomcat.util.scan.StandardJarScanner@3e372e87}, xwork.MethodAccessor.denyMethodExecution=false, com.opensymphony.xwork2.ActionContext.conversionErrors={}, action=com.lfl.webStruts_01.HelloWorldStruts@5847b118, report.conversion.errors=false, com.opensymphony.xwork2.ActionContext.name=index, attr=AttributeMap {request={struts.actionMapping=ActionMapping{name='index', namespace='/', method='null', extension='action', params=null, result=null}, __cleanup_recursion_counter=1, struts.valueStack=com.opensymphony.xwork2.ognl.OgnlValueStack@ef74f84}, session={}, application={org.apache.jasper.compiler.TldCache=org.apache.jasper.compiler.TldCache@669792bb, javax.servlet.context.tempdir=F:\stsWorkSpace1\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\work\Catalina\localhost\ROOT, freemarker.Configuration=freemarker.template.Configuration@7e1df4ad, org.apache.jasper.runtime.JspApplicationContextImpl=org.apache.jasper.runtime.JspApplicationContextImpl@5a3887e2, org.apache.catalina.jsp_classpath=/F:/开发专用/tomcat/apache-tomcat-8.5.12/lib/;/F:/开发专用/tomcat/apache-t...

 这里面就是ActionContext的所有东西   里面路径有中文不要介意,因为方便我找东西,啧啧。

通过ActionContext获取request session application 以及ActionContext的简单解析「建议收藏」

这个是session在ActionContext对象中的格式  是个map 这样的话  我们就直接搜索request 

通过ActionContext获取request session application 以及ActionContext的简单解析「建议收藏」

到这里的话   应该已经知道了吧

 

通过ActionContext获取request session application 以及ActionContext的简单解析「建议收藏」

我们只需要通过字符串(”request”)key获取request对象就可以了 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195628.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用python画出爱心_Python编出爱心

    用python画出爱心_Python编出爱心Python中可以使用turtle库来画图,通过控制画笔运动来实现在画布上画图案。使用Python画爱心代码如下:#!/usr/bin/envpython#-*-coding:utf-8-*-importturtleimporttime#画心形圆弧defhart_arc():foriinrange(200):turtle.right(1)turtle.forward(2)de…

    2022年9月7日
    0
  • SQL基础教程_一般sql培训多少钱

    SQL基础教程_一般sql培训多少钱下面是我看到其他博主写的博客,感觉sql总结的不错,对我很有帮助,就把它拿过来了,以便下次使用,借鉴网址:http://www.cnblogs.com/minuobaci/p/7224956.html

    2022年8月2日
    5
  • 安卓数据转移到iphone很慢_iphone数据迁移中断怎么继续

    安卓数据转移到iphone很慢_iphone数据迁移中断怎么继续如果你刚刚从安卓手机换了新的iPhone或者其他iOS设备,可以按照下面的步骤将数据转移到新设备,实现“无缝”过渡。准备工作在安卓手机上下载安装“转移到iOS”应用,打开安卓设备上的WiFi,并将新iOS设备和安卓设备都插入电源。转移需要在iPhone激活并设置新iOS设备过程进行,如果你已经激活,需要进入“设置”>“通用”>“还原”,然后选择“抹掉所有内容和设…

    2022年9月18日
    0
  • 记使用 git clean -d -fx ” ” 命令悲催的一天(强列建议慎用)

    记使用 git clean -d -fx ” ” 命令悲催的一天(强列建议慎用)

    2022年2月10日
    90
  • PD快速充电协议(转)[通俗易懂]

    PD快速充电协议(转)[通俗易懂]来源-作者@:http://www.elecfans.com/d/647097.html建议读者阅读原文,确保获得完整的信息1.PD充电协议是什么意思    PD充电协议是USB-IF组织公布的功率传输协议,它可以使目前默认最大功率5V/2A的type-c接口提高到100W,同时谷歌宣布Android7.0以上的手机搭载的快充协议必须支持PD协议,意在统一快充市场。2.PD协议快充是什么意思   …

    2022年10月23日
    0
  • 【ClickOnce】自定义前提条件 Creating Bootstrapper Packages

    【ClickOnce】自定义前提条件 Creating Bootstrapper Packages背景以ClickOnce方式发布WPF程序时,在工程属性页的Publish标签中,单击Prerequisites按钮后可以选择需要安装的前提条件列表,比如.netframework。该列表未提供添加按钮或者管理功能,必须手工把自定义的前提条件添加进去。方法简单明了,把程序文件和要求的配置文件等存放到指定位置即可,如下:Walkthrough:Creati…

    2022年7月20日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号