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

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.

## Implement SessionAware

Preferred

- Ensure that `servletConfig` Interceptor is included in the Action's stack.
  - The default stack already includes `_ servletConfig_`.
- 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.

Icon

When the `servletConfig` 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.

Icon

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