下面的文字是从struts2官网拷过来的,英文好点的可以看看
How do we get access to the session
You can obtain the session attributes by asking the ActionContext or implementing SessionAware. Implementing SessionAware is preferred.
Ask the ActionContext
The session attributes are available on the ActionContext instance, which is made available via ThreadLocal.
Map attibutes = ActionContext.getContext().getSession();
Implement SessionAware
_Preferred_
Ensure that servlet-config Interceptor is included in the Action's stack.
//The default stack already includes servlet-config.
Edit the Action so that it implements the SessionAware interface.
The SessionAware interface expects a setSession method. You may wish to include a companion getSession method.
At runtime, call getSession to obtain a Map representing the session attributes.
Any changes made to the session Map are reflected in the actual HttpSessionRequest. You may insert and remove session attributes as needed.
Map parameters = this.getSession();
When the servlet-config Interceptor sees that an Action implements ParameterAware, it passes a Map of the session attributes to the Action's setParameters method. Changes made to the Map are reflected in the runtime HttpSessionRequest.
To unit test a SessionAware Action, create your own Map with the pertinent session attributes and call setSession as part of the test's setUp method.
注意执行顺序:
先由 servlet-config Interceptor 调用 Action的 setParameters方法,传值。
官网地址:
http://struts.apache.org/2.0.14/docs/how-do-we-get-access-to-the-session.html
分享到:
相关推荐
在 Struts2 中,要使用 Session,需要实现 SessionAware 接口,该接口提供了一个 setSession 方法,用于将 Session 对象传递给 Action。在 Login.java 文件中,我们可以看到,Login 类实现了 SessionAware 接口,并...
在Struts2中,我们可以直接在Action类中注入HttpSession来访问session。以下是具体步骤: 1. **依赖注入**:首先,确保Action类继承自Struts2提供的`ActionSupport`类或自定义的Action支持类,并且已经添加了对...
以下将详细介绍如何在Struts2的Action中获取request、response、session。 ### 1. 使用ActionContext获取request、response、session Struts2的Action可以通过`ActionContext`来间接获取`request`、`response`和`...
在Struts2中,访问Web资源,如application、session和request,是常见的操作,这有助于实现数据共享和传递。本示例代码将帮助开发者更好地理解和运用这些功能。 一、Application域对象 Application域对象在所有用户...
OGNL是Struts2中强大的表达式语言,它允许开发者直接在JSP或Action中通过表达式来访问request、session和application中的数据。例如,`<s:property value="#session['key']" />`可以在页面上显示session中的值。在...
通过这样的配置,Struts2框架会在执行任何需要登录的Action之前,先检查用户是否已经登录(通过Session中的 `systemUser` 对象)。如果未登录,会重定向到登录页面。这种方式可以有效地保护应用程序的资源,防止未...
在 Struts2 中,处理用户请求时经常需要使用到 Servlet 的内置对象,比如 Request、Session 和 Application,这些对象可以帮助开发者存储和获取数据。然而,在实际应用中,为了避免代码与 Servlet API 过度耦合,...
在Struts2中,通常我们不直接操作响应范围,而是使用Struts2的Result类型(如Redirect、Stream等)来处理。例如,设置重定向: ```java public class MyAction { public String execute() { return "redirect:/...
### STRUTS2中获取Session和Request的方法 在STRUTS2框架中,有多种方式可以访问`session`和`request`对象。下面我们将详细介绍其中的两种主要方法:实现接口法和使用ActionContext。 #### 实现接口法 STRUTS2...
2. **Session检查**:在Web应用中,Session是一种常用的技术来跟踪用户的登录状态。当用户成功登录后,服务器会在用户的浏览器上创建一个唯一的Session ID,并将用户信息(如用户名、角色等)存储在服务器端的...
在Struts2中,Action是核心组件之一,它负责处理用户的请求,并将业务逻辑的结果返回给视图进行展示。本实例将深入探讨在基于用户登录场景下,如何在Struts2中对Action进行分类和设计。 首先,我们需要了解Struts2...
在这个特定的场景中,我们讨论的是如何在Struts2中创建一个能够生成中文验证码的Action。 验证码的主要目的是防止自动机器人或恶意攻击,通过向用户提供一组随机字符(通常是数字和/或字母)来验证他们是否是真实的...
1. **配置拦截器**:在struts.xml配置文件中,我们需要添加tokenSession拦截器到相应的action配置中。例如: ```xml <interceptor name="tokenSession" class="org.apache.struts2.interceptor....
以下是关于如何在Struts2中Action获取JSP页面参数以及相关上下文对象的详细说明: 1. **ActionContext获取请求参数** - `ActionContext`是Struts2框架中的一个重要组件,它是一个存储执行Action时所需对象的容器,...
6. **URL重写和URL生成**:Servlet API提供了`RequestDispatcher`用于转发和重定向,而在Struts2中,`ActionSupport`类的`redirectAction()`和`generateUrl()`方法可以帮助我们生成和重定向到特定的Action。...
在Struts2中,访问request、session和application对象是进行数据共享和传递的重要手段。这篇学习笔记主要探讨了如何在Struts2框架下有效地利用这三种域对象。 首先,request对象代表一次HTTP请求,它存储的数据仅...
总的来说,在Struts2中,通过`ActionContext`和`ServletActionContext`,开发者可以方便地获取并处理JSP页面传递的参数,以及与Servlet相关的各种对象,以实现灵活的业务逻辑控制。正确理解和使用这两个类对于编写...
客户端通过Session ID(通常存储在cookie中)来标识其对应的Session。开发者可以在Session中存储用户信息,如登录状态、购物车内容等,以保持跨页面的会话数据。 【JavaMail】 JavaMail是一个开源API,用于处理邮件...
在Struts2中,模型负责业务逻辑,视图负责展示数据,而控制器接收用户请求并协调模型和视图的交互。 2. **Struts2入门**: 创建一个简单的Struts2应用通常涉及以下步骤: - 引入Struts2库:在项目中添加Struts2的...