Session
Tracking
HTTP is a stateless protocol.
Each request is independent of the previous one. However, in some applications,
it is necessary to save state information so that information can be collected
from several interactions between a browser and a server. Sessions provide such
a mechanism.
A session can be created via
the getSession( ) method of HttpServletRequest. An HttpSession object is returned. This
object can store a set of bindings that associate names with objects. The setAttribute(
), getAttribute( ), getAttributeNames( ), and removeAttribute( ) methods of HttpSession manage these bindings.
Session state is shared by all servlets that are associated with a client.
The following servlet
illustrates how to use session state. The getSession(
) method gets the current session. A new session is created if one does not
already exist. The getAttribute( )
method is called to obtain the object that is bound to the name
"date". That object is a Date
object that encapsulates the date and time when this page was last accessed.
(Of course, there is no such binding when the page is first accessed.) A Date object encapsulating the current
date and time is then created. The setAttribute(
) method is called to bind the name "date" to this object.
import java.io.*; import java.util.*; import
javax.servlet.*;
import javax.servlet.http.*;
public class DateServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
Get the HttpSession object.
HttpSession hs = request.getSession(true);
//Get writer.
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.print("<B>");
//Display date/time of last access.
Date date =
(Date)hs.getAttribute("date"); if(date != null) {
pw.print("Last access: " + date +
"<br>");
}
// Display current date/time.
date = new Date();
hs.setAttribute("date", date);
pw.println("Current date: " + date);
}
}
When you first request this
servlet, the browser displays one line with the current date and time
information. On subsequent invocations, two lines are displayed. The first line
shows the date and time when the servlet was last accessed. The second line
shows the current date and time.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.