Apache Struts 2 Documentation > Home > FAQs > How do we get access to the session |

Apache Struts 2 Documentation
How do we get access to the session
Edit Page Browse Space Add Page Add News
Added by digi9ten, last edited by Ted Husted on Jul 22, 2006 (view change)

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.

@see struts-default.xml
@see org.apache.struts.acton2.interceptor.SessionAware
@see org.apache.struts.acton2.interceptor.Servlet Config Interceptor