A simple web application showing how to manage sessions through its methods in JSP and Servlets using Session Management API
1. style.css (not mandatory) just for look and feel
body {
 font-family: Verdana, Geneva, Arial, helvetica, sans-serif;
 background-color: #FDF4DF;
 font-size: 14px;
 color: #FFFFFF;
}
td {
 font-family: Verdana, Geneva, Arial, helvetica, sans-serif;
 font-size: 14px;
}
th {
 font-family: Verdana, Geneva, Arial, helvetica, sans-serif;
 font-size: 14px;
}
.black {
 color: #000000;
 font-weight: bold;
}
2. register.jsp
| 
 | 
3. SessionManagement.java (Servlet)
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
 * Servlet implementation class SessionManagement
 */
@WebServlet("/SessionManagement")
public class SessionManagement extends HttpServlet {
 @Override
 protected void doGet(
   HttpServletRequest request, 
   HttpServletResponse response
   ) throws ServletException, IOException {
  doPost(request, response);
 }
 @Override
 protected void doPost(
   HttpServletRequest request, 
   HttpServletResponse response
   ) throws ServletException, IOException {
  response.setContentType("text/html;charset=UTF-8");
  // Getting the first name of user from the request 
  String firstName = request.getParameter("firstName");
  // Creating PrintWriter from response for displaying
  // contents on the browser
  PrintWriter out = response.getWriter();
  // Creating a HttpSession Object for the request
  HttpSession newSession = request.getSession(true);
  // Setting the maximum inactive interval to be 1 min
  // after 1 min a new session will be created 
  newSession.setMaxInactiveInterval(60);
  String welcome;
  Integer counter = 0;
  try {
   // Checking whether session is new or not  
   if (newSession.isNew()) {
    // If user has visited this page for 1st time below msg is displayed
    welcome = "Hi "+ firstName +" !!!. It's first time you are visiting this website.";
   }
   else {
    // If user has already visited this page in session interval
    // than this msg is been displayed 
    welcome = "Hi "+ firstName +" !!!. Welcome back";
    // getting the value of counter from session for first
    // time it will be null 
    Integer count = (Integer)newSession.getAttribute("counter");
    if (count != null) {
     // incrementing the value of counter by one if its not null
     // that is user has visited the page for second time 
     counter = new Integer(count.intValue() + 1);
    }
   }
   // setting the value of counter into session after 1st visit as soon
   //  as soon as visitor comes back till session expiration this value will be displayed
   // with the help of session management ... After session expiration this value will be 
   // gone and reset to null
   newSession.setAttribute ("counter", counter);
   out.println("<html><head><title>Session Management</title></head><body bgcolor='#FDF4DF'>");
   out.println("<h3>" + welcome + "</h3><br>");
 
   // printing the session id coming in the request for the first time 
   out.println("<b>Session Id : </b>" + newSession.getId() + "<br>");
   
   // prints the creation time of servlet as a date 
   out.println("<b>Creation Time of the Session : </b>" + 
     new Date(newSession.getCreationTime()) + "<br>");
   
   // prints the last access of the page by the same user
   out.println("<b>Last access time : </b>" + 
     new Date(newSession.getLastAccessedTime()) + "<br><br>");
   
   // it displays the maximum inactive interval time
   out.println("<b>Maximum inactive interval time was : </b>" + 
     newSession.getMaxInactiveInterval() + "<br>");
   // printing the counter value
   out.println("You have visited this page " + (++counter));
   if(counter == 1) {
    out.println(" time ");
   }
   else {
    out.println(" times ");
   }
   out.println("</body></html>");
  } 
  finally {
   out.close();
  }
 }
}
Output of the program :
1. register.jsp screen view
2. ServletManagement output screen view for first access
3. ServletManagement output screen view for second access within 1 min of first
4. ServletManagement output screen view access after 1 min of inactive time
Screen 2 and 4 are same but with different Session Id (Check) ....
 




 
