通过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)
上一篇 2025年10月13日 下午3:43
下一篇 2025年10月13日 下午4:15


相关推荐

  • RT Thread FinSH组件

    RT Thread FinSH组件FinSH入口rt_components_init();voidmain_thread_entry(void*parameter){externintmain(void);#ifdefRT_USING_COMPONENTS_INIT/*RT-Threadcomponentsinitialization*/rt_components_init();#endif/*RT_USING_COMPONENTS_INIT*/#ifdefRT_US

    2022年5月21日
    43
  • Spidermonkey_spider是什么意思

    Spidermonkey_spider是什么意思Slide1SpiderMonkey设计和实现Author:张平Email:p.zhang.9.25@gmail.comSlide2简介:SpiderMonkey:JavaScriptEngine:Javascript发明者BrendanEich在NetScape所写,后来由MozillaF​o​u​n​d​a​t​i​o​n​所

    2022年10月17日
    6
  • altas, ajax应用

    altas, ajax应用nbsp ajax 应该在今年业界火了一把 微软也不会放弃 altas 是基于 ASP NET 的 ajax 框架 接下来 介绍一下 altas 的简单应用 以后可能会多做一下这方面的应用 下面的是一个 ajax 原理的一个 DEMO 比较简单 页面每隔 5 秒 刷新 Receive asp 的内容 并显示在当前页面中 这里先开个头 http www w3 org TR xhtml1 DTD xhtml1 tr

    2026年3月17日
    2
  • n8n节点汉化教程 自动化神器终于能看懂中

    n8n节点汉化教程 自动化神器终于能看懂中

    2026年3月15日
    2
  • vhr环境配置

    vhr环境配置vhr 环境配置笔记 windows 需要安装 redis rabbitmq 简单附下载连接及安装地址 一 redis 安装比较简单 此处不做讲解 记录一下启动及设置查询密码 redis 启动 通过指定配置文件来启动 cmd 切换到 redis 安装目录 执行 redis server exeredis windows conf 修改密码 在 redis 安装目录下 找到 redis conf redis

    2025年7月23日
    4
  • Gradle 配置代理

    Gradle 配置代理全局代理在 C Users 用户 gradle 下打开或新建文件 gradle properties 增加内容 分别配置 socks http https 的代理 IP 代理端口 用户名和密码 gradle 代理配置 systemProp socks proxyHost xxxsystemPro socks proxyPort xxxsystemPro socks proxyUser xxxsystemPro socks proxyPasswor xxxsystemPro http p

    2026年3月18日
    2

发表回复

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

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