网上介绍有两种获取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()来获取
分享到:
相关推荐
以下将详细介绍如何在Struts2的Action中获取request、response、session。 ### 1. 使用ActionContext获取request、response、session Struts2的Action可以通过`ActionContext`来间接获取`request`、`response`和`...
在Struts2中,虽然request、response和session被隐藏起来,但是提供了多种便捷的方式来获取这些对象,使得开发者可以在自定义的方法中灵活地使用它们。通过使用Struts2提供的接口、注解或ActionContext,开发者能够...
在Struts2框架中,理解并正确使用request、response、session和application范围对于有效地管理数据和状态至关重要。这些范围帮助我们在Web应用程序中实现逻辑和数据流的分离,提高代码的可维护性和可扩展性。通过...
在 Struts2 中,处理用户请求时经常需要使用到 Servlet 的内置对象,比如 Request、Session 和 Application,这些对象可以帮助开发者存储和获取数据。然而,在实际应用中,为了避免代码与 Servlet API 过度耦合,...
- **ActionContext**:存储了请求期间的上下文信息,包括值栈、session、request和response对象等。 - **ActionInvocation**:表示Action执行的实例,包含了Action执行的整个过程,包括调用Action、触发拦截器链等...
在Struts2中,ActionContext不仅仅是获取request和response的工具,它还包含了其他有用的上下文信息,如session、application等。例如,你可以通过ActionContext获取session中的数据: ```java Map, Object> ...
以下是对"struts2获取response的方法"的详细说明。 1. **ActionSupport类的实现** Struts2中的Action类通常会继承自`org.apache.struts2.interceptor.StrutsPrepareAndExecuteInterceptor`或`...
- ActionContext是Struts2中存储请求上下文信息的对象,包括Value Stack、Parameters、Session、Request、Response等。 通过研究Struts2的源代码,我们可以更深入地理解这些概念如何协同工作,有助于我们在实际...
3. **Action上下文(Action Context)**:`org.apache.struts2.dispatcher`包下的`ActionContext`类存储了请求处理过程中的上下文信息,如值栈(Value Stack)、session、request、response等。 4. **值栈(Value ...
1. **ActionContext**:ActionContext是Struts 2中的一个核心类,它在请求处理过程中存储了所有上下文相关的数据,比如值栈、参数、session、request、response等。它是一个线程局部变量,确保了不同请求之间的数据...
2. **ActionContext**: 包含了当前请求的所有上下文信息,如session、request、response、value stack等。 3. **ActionInvocation**: 表示Action执行的实例,包含了调用链以及拦截器链。 4. **...
### STRUTS2获得作用域、参数响应对象及三种符号说明 #### 一、概述 在Struts2框架中,为了更好地管理Web应用程序中的请求、会话和应用范围的数据,Struts2提供了一系列的工具和机制。这包括了对`RequestMap`、`...
3. **ActionContext**:ActionContext封装了当前线程的上下文信息,包括参数、值栈、Session、Request、Response等对象,提供了一种全局访问这些对象的方式。 4. **ValueStack**:值栈是Struts2中的一个重要概念,...
5. **ActionContext**:ActionContext封装了当前线程的上下文信息,包括ValueStack、Parameters、Session、Request和Response等。它使得在不同线程间共享数据变得简单,同时也提供了线程安全的环境。 6. **...
8. **ActionContext**:ActionContext是Struts 2中上下文信息的载体,包含线程局部变量、session、request和response等信息。研究其源码可以帮助理解框架如何在不同组件间传递数据。 9. **ActionInvocation**:...
通过以上分析可以看出,在Struts2项目中配置过滤器是一种非常实用的方法,可以有效地实现对用户请求的预处理工作。需要注意的是,在实际应用中还应考虑更多细节问题,比如如何处理不同环境下的配置差异、如何更灵活...
5. **ActionContext**:在Struts2中,ActionContext封装了当前请求的所有上下文信息,包括值栈、Session、Request、Response等,是Action和环境交互的关键。 6. **StrutsPrepareAndExecuteFilter**:这是Struts2的...
它有内置对象如request、response、session、application等,方便处理HTTP请求和响应。 - **EL(Expression Language)**:EL简化了在JSP中获取和设置属性值的方式,无需编写Java脚本,使得JSP更加简洁。 - **JSTL...
Struts2学习心得 本文总结了Struts2的常用方法和经验,涵盖了配置问题、EL表达式、Struts2的架构和Namespace等方面的知识点。 一、配置问题 Struts2的最新版本为GA 2.2.1,需要以下几个类库: 1.commons-...
- **ActionContext**:存储和管理请求上下文中的所有信息,包括值栈、session、request、response等。 - **ValueStack**:管理模型对象,使得视图可以直接访问模型数据,通过OGNL(Object-Graph Navigation ...