Struts2提供了两种方式来访问request,session,application
第一种方式:与servlet API解耦的访问方式
(1)Struts2对HttpServletRequest,HttpSession,ServletContext进行了封装,构造了三个Map对象来替代这三种对象,在Action中,直接使用对应的Map对象来保存和读取数据。
ActionContext是action执行的上下文,在ActionContext中保存了action执行所需的一组对象:parameters,request,session,application,locale.
ActionContext context=ActionContext.getContext();
Map request =(Map) context.get(“request”);
Map session=context.getSession();
Map application=context.getApplication();
(2)实现特定的接口
让Struts2框架在运行时向Action实例注入request,session,application对象。
Org.apache.struts2.interceptor.RequestAware
向Action实例注入request Map对象
SessionAware
ApplicationAware
第二种方式:与servlet API 耦合的访问方式
要直接获取HttpSerlvetRequest和ServletContext 对象,可以使用org.apache.struts2.ServletActionContext类,该类是ActionContext的子类。
Public static HttpServletRequest getRequest();
Public static ServletContext getServletContext();
Public satic HttpServletResponse getResponse();
分享到:
相关推荐
总结来说,Struts2提供了多种途径来访问和管理request、session和application的数据,包括ActionContext、ValueStack、OGNL和拦截器。掌握这些方法将有助于提高开发效率和代码质量,同时也能更好地理解和优化基于...
综上所述,在 Struts2 中访问 Request、Session 和 Application 作用域有多种方式。为了提高代码的可移植性和可维护性,建议优先考虑使用与 Servlet API 无耦合的方式。同时,对于需要频繁访问 Request 和 Response ...
在Struts2中,访问Web资源,如application、session和request,是常见的操作,这有助于实现数据共享和传递。本示例代码将帮助开发者更好地理解和运用这些功能。 一、Application域对象 Application域对象在所有用户...
在Struts2中,我们通常通过Action类的成员变量来访问request域。例如,如果要在Action中设置一个名为`message`的request属性,可以这样做: ```java public class MyAction extends ActionSupport { private ...
总结来说,Struts2提供了多种途径来让Action访问request、response和session,开发者可以根据实际需求和偏好选择合适的方法。无论是通过ActionContext、依赖注入还是拦截器,都能够在Action中灵活地操作这些关键的...
在Struts2中,可以通过`ValueStack`或`ActionContext`来访问请求范围。例如,可以在Action中设置: ```java public class MyAction { public String execute() { ActionContext.getContext().getValueStack()....
Struts2 框架提供了多种方式来访问 Servlet API,包括使用 ActionContext 类、实现接口和使用 ServletActionContext 类等。在本文中,我们将详细介绍 Struts2 访问 Servlet API 的几种方法。 一、使用 ...
这些类帮助开发者更方便地获取不同作用域内的数据,并提供了多种方式来访问`request`、`session`和`response`对象。 #### 二、核心概念 ##### 1. RequestMap `RequestMap`是一个实现了`Map`接口的类,它用于封装`...
在Struts2中,ActionContext不仅仅是获取request和response的工具,它还包含了其他有用的上下文信息,如session、application等。例如,你可以通过ActionContext获取session中的数据: ```java Map, Object> ...
Struts2 标签可以访问不同的作用域的类,例如 request、session、application 等。 标签的优点 Struts2 标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,Struts2 的主题、模板都提供了很好的扩展...
作为入门级的代码案例,"struts2_damo3"压缩包文件很可能是提供了一个基础的Struts2应用实例,帮助初学者理解如何在实际项目中运用Struts2框架。下面我们将深入探讨Struts2框架的核心概念和关键组件,并结合JSP...
2. Struts2不需要注意线程同步的问题,而Struts1则面临这个问题,因为Struts1对action创建的时候只创建一次,当多个用户同时访问这个action时,则必须出现这个同步的问题。而对Struts2来说,需要action时都要重新new...
- 访问不同范围内的属性:如`#attr.userName`会按照`request > session > application`的顺序查找`userName`属性。 - **条件筛选**:在集合中使用OGNL进行条件筛选,例如`books.{?#this.price>35}`表示筛选价格...
相比于Struts1,Strugs2更加灵活且易于扩展,支持多种插件以及标签库,能够极大地提高开发效率。 #### 二、#符号的基本概念 在Struts2中,`#`符号通常用于访问Ognl表达式中的变量。它支持访问不同的作用域,如当前...
4. 命名对象:包括在Servlet作用范围内的对象信息,如Request、Session、Application等。 在实际开发中,开发者可以通过OGNL表达式访问值栈中的Action属性、对象和其他信息。例如,使用标签可以输出Action中的属性...
此外,还可以通过`ServletActionContext.getSession()`和`ServletActionContext.getApplication()`来访问session和应用级别的数据。 3. **实现ServletAware接口**:为了进一步解耦,Struts2允许开发者通过实现...
Struts2框架为Java Web开发者提供了一种高效、灵活的方式来构建Web应用程序。通过对Struts2的学习,开发者不仅可以掌握其基本用法,还能深入理解其内部原理和技术细节,从而更好地利用这一强大工具解决实际项目中的...
ValueStack是Struts2框架中的核心概念,它是一个对象栈,包含了Action对象、模型对象以及不同作用域的固定名称对象(如#application、#session、#request等)。值栈使得标签库可以直接访问对象,而不需要在视图层和...
总结来说,ActionContext和ServletActionContext是Struts2中处理请求和响应的关键工具,它们提供了方便的方式来访问和操作HTTP请求、会话以及应用上下文中的数据,是理解Struts2工作原理的重要组成部分。正确使用这...