Download presentation
Presentation is loading. Please wait.
Published byEzra Sullivan Modified over 9 years ago
1
Session Tracking Lec 31
2
Revisiting Session Tracking HTTP is a stateless protocol Every request is considered independent of every other request Many web applications need to maintain a conversational state with the client A shopping cart is a classic example
3
Store State Somewhere Server Side? Makes Server Really Complicated State per client! Client Side?
4
“Post-Notes” Server puts little notes on the client side When client submits the next form, it also (unknowingly) submits these little notes Server reads the notes, remembers who the client is
5
Three Typical Solutions Cookies URL Rewriting Hidden Fields
6
Handling Cookies
7
Potential of Cookies Idea Web server sends a simple name-value pair to client (web browser etc.) Saved by the client Later, Client returns same name and value when it connects to same site (or same domain, depending on cookie settings)
8
Potential of Cookies Typical Uses of Cookies Identifying a user during an e-commerce session Servlets have a higher-level API for this task Avoiding username and password Customizing a site Focused advertising
9
Sending Cookies to Browser Create a Cookie object Cookie c = new Cookie("name", "value"); Set the Maximum age etc Cookie persists on disk c.setMaxAge(seconds); // Set other attributes. Place the Cookie into HTTP response If you forget this step, no cookie will be sent to the browser response.addCookie(c);
10
Reading Cookies from Browser To read incoming cookies, get them from request object Cookie[] cookies = request.getCookies(); Once you have an array of cookies, you can iterate over it Use getName and getValue to retrieve cookie name & value respectively for(int i=0; i<cookies.length; i++) { Cookie c = cookies[i]; if (c.getName().equals("someName")){ // doSomethingWith cookie break; }
11
Example 1: RepeatVisitor This servlet checks for a unique cookie, named “repeat”. If the cookie is present, servlet says “Welcome Back” Otherwise, servlet says “Welcome Aboard”.
12
Example Code Repeat Visitor
13
Using Cookies to Detect First-Time Visitors (Results)
14
HTTP Cookies String sID = makeUniqueString(); Hashtable sessionInfo = new Hashtable(); Hashtable globalTable = findTableStoringSessions(); globalTable.put(sID, sessionInfo); Cookie sessionCookie = new Cookie("JSESSIONID", sID); response.addCookie(sessionCookie); 1239865610 Credit: cs193i at Standford
15
HTTP Cookies String sID = makeUniqueString(); Hashtable sessionInfo = new Hashtable(); Hashtable globalTable = findTableStoringSessions(); globalTable.put(sID, sessionInfo); Cookie sessionCookie = new Cookie("JSESSIONID", sID); response.addCookie(sessionCookie); 1239865610 Credit: cs193i at Standford
16
HTTP Cookies String sID = makeUniqueString(); Hashtable sessionInfo = new Hashtable(); Hashtable globalTable = findTableStoringSessions(); globalTable.put(sID, sessionInfo); Cookie sessionCookie = new Cookie("JSESSIONID", sID); response.addCookie(sessionCookie); 1239865610 Credit: cs193i at Standford
17
HTTP Cookies String sID = makeUniqueString(); Hashtable sessionInfo = new Hashtable(); Hashtable globalTable = findTableStoringSessions(); globalTable.put(sID, sessionInfo); Cookie sessionCookie = new Cookie("JSESSIONID", sID); response.addCookie(sessionCookie); 1239865610 Credit: cs193i at Standford
18
HTTP Cookies String sID = makeUniqueString(); Hashtable sessionInfo = new Hashtable(); Hashtable globalTable = findTableStoringSessions(); globalTable.put(sID, sessionInfo); Cookie sessionCookie = new Cookie("JSESSIONID", sID); response.addCookie(sessionCookie); 1239865610 JSESSIONID → 1239865610 Credit: cs193i at Standford
19
HTTP Cookies String sID = makeUniqueString(); Hashtable sessionInfo = new Hashtable(); Hashtable globalTable = findTableStoringSessions(); globalTable.put(sID, sessionInfo); Cookie sessionCookie = new Cookie("JSESSIONID", sID); response.addCookie(sessionCookie); 1239865610 Set-Cookie: JSESSIONID=1239865610; Credit: cs193i at Standford
20
HTTP Cookies Cookie: JSESSIONID=1239865610; // On request String sID = getCookieValue("JSESSIONID"); Hashtable globalTable = findTableStoringSessions(); Hashtable sInfo = (Hashtable) globalTable.get(sID); // sInfo contains the data related to user Credit: cs193i at Standford
21
HTTP Cookies Cookie: JSESSIONID=1239865610; // On request String sID = getCookieValue("JSESSIONID"); Hashtable globalTable = findTableStoringSessions(); Hashtable sInfo = (Hashtable) globalTable.get(sID); // sInfo contains the data related to user Credit: cs193i at Standford
22
HTTP Cookies Cookie: JSESSIONID=1239865610; 1239865610 // On request String sID = getCookieValue("JSESSIONID"); Hashtable globalTable = findTableStoringSessions(); Hashtable sInfo = (Hashtable) globalTable.get(sID); // sInfo contains the data related to user Credit: cs193i at Standford
23
Example : Online Book Store using cookies netBeans project -CookieSessionEx
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.