This J2EE tip demonstrates a method of maintaining client session in servlets. SessionTracking is mechanism introduced here since Http is a stateless protocol. Using sessions in servlets is quite straightforward, and involves looking up the session object associated with the current request, creating a new session object when necessary, looking up information associated with a session, storing information in a session, and discarding completed or abandoned sessions.However there are alternative approaches also.

import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

class SessionExample extends HttpServlet {

    public void doGet(HttpServletRequest request, 
  HttpServletResponse responsethrows 
  IOException, ServletException {

        PrintWriter out = response.getWriter();
        HttpSession session = request.getSession(true);

        // Print session info

        Date date = new Date(session.getCreationTime());
        Date accessed = new Date(session.getLastAccessedTime());
        out.println("ID " + session.getId());
        out.println("Created: " + date);
        out.println("Last Accessed: " + accessed);

        // Set session info 

        String data = request.getParameter("data");
        if (data != null && data.length() 0) {
            String dataValue = request.getParameter("dataValue");
            session.setAttribute(data, dataValue);

        // Print session contents
        Enumeration e = session.getAttributeNames();
        while (e.hasMoreElements()) {
            String name = (String)e.nextElement();
            String value = session.getAttribute(name).toString();
            out.println(name + " = " + value);