Luckily (unlike cookies), Struts2 comes with features to give you access to sessions without dipping into the realms of the ServletRequest / ServletResponse. So here's how to use sessions with Struts 2: You need to make your action implement SessionAware to get access to the session:
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.SessionAware;

public class MyAction extends extends ActionSupport implements SessionAware {
  
  // For SessionAware
  Map<String, Object> session;
  @Override
  public void setSession(Map<String, Object> session) {
    this.session = session;
  }
  
}
Once you've done that, you can access the session with code like this:
public String execute() {
  int division = ...

  // Write to the session
  session.put("division",(Integer)division);
  
  // Read from the session
  if (session.containsKey("division"))
    division=(Integer)session.get("division");
  
  return "success";
}
And if you feel like configuring your session lifetimes manually, make the following edits to your web.xml:
<web-app>
  <!-- How long the sessions will stick around for -->
  <session-config>
    <session-timeout>600</session-timeout> <!-- 600seconds = 10 mins -->
  </session-config>
</web-app>
Reference: http://struts.apache.org/2.0.14/docs/how-do-we-get-access-to-the-session.html

Thanks for reading! And if you want to get in touch, I'd love to hear from you: chris.hulbert at gmail.