How to use sessions with Struts 2
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:
Once you've done that, you can access the session with code like this:
And if you feel like configuring your session lifetimes manually, make the following edits to your web.xml:
Reference:
http://struts.apache.org/2.0.14/docs/how-do-we-get-access-to-the-session.html
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;
}
}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";
}<web-app>
<!-- How long the sessions will stick around for -->
<session-config>
<session-timeout>600</session-timeout> <!-- 600seconds = 10 mins -->
</session-config>
</web-app>