1 / 23

Java

Java. Omar Rana University of South Asia. 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.

ahmed-cain
Download Presentation

Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java Omar Rana University of South Asia

  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 CodeRepeat Visitor

  13. Using Cookies to Detect First-Time Visitors (Results)

  14. HTTP Cookies 1239865610 String sID = makeUniqueString(); Hashtable sessionInfo = new Hashtable(); Hashtable globalTable = findTableStoringSessions(); globalTable.put(sID, sessionInfo); Cookie sessionCookie = new Cookie("JSESSIONID", sID); response.addCookie(sessionCookie); Credit: cs193i at Standford

  15. HTTP Cookies 1239865610 String sID = makeUniqueString(); Hashtable sessionInfo = new Hashtable(); Hashtable globalTable = findTableStoringSessions(); globalTable.put(sID, sessionInfo); Cookie sessionCookie = new Cookie("JSESSIONID", sID); response.addCookie(sessionCookie); Credit: cs193i at Standford

  16. HTTP Cookies 1239865610 String sID = makeUniqueString(); Hashtable sessionInfo = new Hashtable(); Hashtable globalTable = findTableStoringSessions(); globalTable.put(sID, sessionInfo); Cookie sessionCookie = new Cookie("JSESSIONID", sID); response.addCookie(sessionCookie); Credit: cs193i at Standford

  17. HTTP Cookies 1239865610 String sID = makeUniqueString(); Hashtable sessionInfo = new Hashtable(); Hashtable globalTable = findTableStoringSessions(); globalTable.put(sID, sessionInfo); Cookie sessionCookie = new Cookie("JSESSIONID", sID); response.addCookie(sessionCookie); Credit: cs193i at Standford

  18. HTTP Cookies 1239865610 JSESSIONID → 1239865610 String sID = makeUniqueString(); Hashtable sessionInfo = new Hashtable(); Hashtable globalTable = findTableStoringSessions(); globalTable.put(sID, sessionInfo); Cookie sessionCookie = new Cookie("JSESSIONID", sID); response.addCookie(sessionCookie); Credit: cs193i at Standford

  19. HTTP Cookies 1239865610 Set-Cookie: JSESSIONID=1239865610; String sID = makeUniqueString(); Hashtable sessionInfo = new Hashtable(); Hashtable globalTable = findTableStoringSessions(); globalTable.put(sID, sessionInfo); Cookie sessionCookie = new Cookie("JSESSIONID", sID); response.addCookie(sessionCookie); 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 1239865610 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

  23. Example : Online Book Storeusing cookies netBeans project -CookieSessionEx

More Related