Accessing Session Object

In this section, we will develop a simple application to access the framework resources like the session object, session context and the last accessed session time.

Accessing Session Object

Accessing Session Object

     

In this section, we will develop a simple application to access the framework resources like the session object, session context and the last accessed session time. To access the session, you need an action class implementing the SessionAware interface and extending ActionSupport class

org.apache.struts2.interceptor.SessionAware  Interface: Actions that need access to the user's HTTP session should implement this interface. This interface is only relevant if the Action is used in a servlet environment. Note that using this interface makes the Action tied to a servlet environment, so it should be avoided if possible since things like unit testing will become more difficult.

Description:

add the following action snippet to the following struts.xml file. 

struts.xml

<action name="GetSession" class="net.roseindia.GetSession">
   <result>/pages/staticparameter/GetSession.jsp</result>
</action>

Now, create a JavaBean (GetSesstion.java). This is a simple POJO (Plain Old Java Object). Here, we implement SessionAware interface. 

The setSession() method sets the session in a Map object. It is called at the running time.

GetSession.java

package net.roseindia;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
import java.util.*;

public class GetSession extends ActionSupport implements SessionAware{

  private Map session;
  public String execute() throws Exception{
  return SUCCESS;
  }

  public void setSession(Map session){
  session = this.getSession();
  }

  public Map getSession(){
  return session;
  }

}

Now, we create a jsp page for viewing the session object, session context and session time. The session object provides information about the session, getSessionContext() method provides the information about the session context and getLastAccessedTime() provides date and time when the last session is accessed. 

GetSession.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>
<%@page language="java" import="java.util.*" %>
<html>
  <head>
  <title>Get Session Example!</title>
  </head>
  <body>
  <h1><span style="background-color: #FFFFcc"> Session Example! </span></h1>
  <b>Session:</b><%=session%><br>
  <b>Session Context: </b><%=session.getSessionContext() %><br>
  <b>Session Time: </b><%=new Date(session.getLastAccessedTime())%>
  
  </body>
</html> 

Finally, open the web-browser and type the http://localhost:8080/struts2tutorial/roseindia/GetSession.action in the address bar. It displays the information about framework session, session context and last accessed session time.

Output of this application: