`

struts2源码分析获取request response session

阅读更多
网上介绍有两种获取request,response和session的方法,一种是ioc方式的,通过实现SessionAware,ServletRequestAware, ServletResponseAware接口就可以
而另一种则是非ioc方式的,我这主要介绍一下非ioc方式的
1.获取request
HttpServletRequest req1 = ServletActionContext.getRequest();
HttpServletRequest req2= (HttpServletRequest)ActionContext.getContext().get(ServletActionContext. HTTP_REQUEST ); 		
HttpServletRequest req4= (HttpServletRequest)ActionContext.getContext().get(StrutsStatics. HTTP_REQUEST ); 	
HttpServletRequest req5= (HttpServletRequest)ActionContext.getContext().get("com.opensymphony.xwork2.dispatcher.HttpServletRequest"); 

其实它们最终是走的一个方法,因为ServletActionContext 继承了ActionContext
而且因为ServletActionContext.getRequest()的方法是调用了ActionContext里的方法
同时ServletActionContext. HTTP_REQUEST,StrutsStatics. HTTP_REQUEST常量都是字符串com.opensymphony.xwork2.dispatcher.HttpServletRequest,
它的定义在StrutsStatics接口中,ServletActionContext也继承了接接口,所有也能直接使用这个常量

2.同理获取response
HttpServletResponse res1 = ServletActionContext.getResponse();
HttpServletResponse res2= (HttpServletResponse)ActionContext.getContext().get(ServletActionContext.HTTP_RESPONSE); 		
HttpServletResponse res3= (HttpServletResponse)ActionContext.getContext().get(StrutsStatics.HTTP_RESPONSE ); 	
HttpServletResponse res4= (HttpServletResponse)ActionContext.getContext().get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"); 

3.获取session 只需要先获取到request就可以通过request.getSession()来获取
0
1
分享到:
评论

相关推荐

    Struts2的Action中获得request response session几种方法

    以下将详细介绍如何在Struts2的Action中获取request、response、session。 ### 1. 使用ActionContext获取request、response、session Struts2的Action可以通过`ActionContext`来间接获取`request`、`response`和`...

    struts2使用request、response

    在Struts2中,虽然request、response和session被隐藏起来,但是提供了多种便捷的方式来获取这些对象,使得开发者可以在自定义的方法中灵活地使用它们。通过使用Struts2提供的接口、注解或ActionContext,开发者能够...

    struts2创建 request response session application

    在Struts2框架中,理解并正确使用request、response、session和application范围对于有效地管理数据和状态至关重要。这些范围帮助我们在Web应用程序中实现逻辑和数据流的分离,提高代码的可维护性和可扩展性。通过...

    struts2访问request,session,application作用域

    在 Struts2 中,处理用户请求时经常需要使用到 Servlet 的内置对象,比如 Request、Session 和 Application,这些对象可以帮助开发者存储和获取数据。然而,在实际应用中,为了避免代码与 Servlet API 过度耦合,...

    struts2源码最新

    - **ActionContext**:存储了请求期间的上下文信息,包括值栈、session、request和response对象等。 - **ActionInvocation**:表示Action执行的实例,包含了Action执行的整个过程,包括调用Action、触发拦截器链等...

    Struts2通过使用ActionContext类获取request和response对象

    在Struts2中,ActionContext不仅仅是获取request和response的工具,它还包含了其他有用的上下文信息,如session、application等。例如,你可以通过ActionContext获取session中的数据: ```java Map, Object> ...

    struts2获取response的方法

    以下是对"struts2获取response的方法"的详细说明。 1. **ActionSupport类的实现** Struts2中的Action类通常会继承自`org.apache.struts2.interceptor.StrutsPrepareAndExecuteInterceptor`或`...

    完整的Struts2源码

    - ActionContext是Struts2中存储请求上下文信息的对象,包括Value Stack、Parameters、Session、Request、Response等。 通过研究Struts2的源代码,我们可以更深入地理解这些概念如何协同工作,有助于我们在实际...

    struts2-core-2.0.11源码

    3. **Action上下文(Action Context)**:`org.apache.struts2.dispatcher`包下的`ActionContext`类存储了请求处理过程中的上下文信息,如值栈(Value Stack)、session、request、response等。 4. **值栈(Value ...

    Struts 2源码查看xwork-2.1.5第二部分

    1. **ActionContext**:ActionContext是Struts 2中的一个核心类,它在请求处理过程中存储了所有上下文相关的数据,比如值栈、参数、session、request、response等。它是一个线程局部变量,确保了不同请求之间的数据...

    struts2-core-2.3.7源码

    2. **ActionContext**: 包含了当前请求的所有上下文信息,如session、request、response、value stack等。 3. **ActionInvocation**: 表示Action执行的实例,包含了调用链以及拦截器链。 4. **...

    STRUTS2获得作用域、参数响应对象及三种符号说明

    ### STRUTS2获得作用域、参数响应对象及三种符号说明 #### 一、概述 在Struts2框架中,为了更好地管理Web应用程序中的请求、会话和应用范围的数据,Struts2提供了一系列的工具和机制。这包括了对`RequestMap`、`...

    struts-2.3.14.1源码

    3. **ActionContext**:ActionContext封装了当前线程的上下文信息,包括参数、值栈、Session、Request、Response等对象,提供了一种全局访问这些对象的方式。 4. **ValueStack**:值栈是Struts2中的一个重要概念,...

    Struts2中xwork源码

    5. **ActionContext**:ActionContext封装了当前线程的上下文信息,包括ValueStack、Parameters、Session、Request和Response等。它使得在不同线程间共享数据变得简单,同时也提供了线程安全的环境。 6. **...

    Struts 2.1.6 src 源码

    8. **ActionContext**:ActionContext是Struts 2中上下文信息的载体,包含线程局部变量、session、request和response等信息。研究其源码可以帮助理解框架如何在不同组件间传递数据。 9. **ActionInvocation**:...

    struts2配置过滤器

    通过以上分析可以看出,在Struts2项目中配置过滤器是一种非常实用的方法,可以有效地实现对用户请求的预处理工作。需要注意的是,在实际应用中还应考虑更多细节问题,比如如何处理不同环境下的配置差异、如何更灵活...

    Struts2_源码.rar.ff23.zip

    5. **ActionContext**:在Struts2中,ActionContext封装了当前请求的所有上下文信息,包括值栈、Session、Request、Response等,是Action和环境交互的关键。 6. **StrutsPrepareAndExecuteFilter**:这是Struts2的...

    struts2简单案例

    它有内置对象如request、response、session、application等,方便处理HTTP请求和响应。 - **EL(Expression Language)**:EL简化了在JSP中获取和设置属性值的方式,无需编写Java脚本,使得JSP更加简洁。 - **JSTL...

    struts2学习心得

    Struts2学习心得 本文总结了Struts2的常用方法和经验,涵盖了配置问题、EL表达式、Struts2的架构和Namespace等方面的知识点。 一、配置问题 Struts2的最新版本为GA 2.2.1,需要以下几个类库: 1.commons-...

    struts2.0源码

    - **ActionContext**:存储和管理请求上下文中的所有信息,包括值栈、session、request、response等。 - **ValueStack**:管理模型对象,使得视图可以直接访问模型数据,通过OGNL(Object-Graph Navigation ...

Global site tag (gtag.js) - Google Analytics