programmera.net -> jsp -> normal     för utskrift      info@programmera.net

session

1. Det implicita objektet session
2. Spara objekt i sessionen
3. Sessionens liv

1. Det implicita objektet session

Objektet är av typen HttpSession. Sessioner används för att spara data som är knutet till en viss användare under en viss tid. Servern håller reda på alla de webbläsare som den under de senaste c.a. 10 minuterna har varit i kontakt med, och tilldelar varje webbläsare ett sessionsid. Om webbläsaren väntar mer än 10 minuter med att kontakta servern kastas dess sessionsid, och data som bara finns lagrad i sessionen går förlorad. Hanteringen av sessioner sker helt automatiskt i JSP, och är mycket användbart för webbprogrammeraren. Att data som lagras i sessionen efter en viss tid kastas bort är ett önskvärt beteende av servern, då man inte vill genomföra en transaktion (lagra data i en databas) utan att användaren har avslutat en process på många steg.

  • OBS: Sessionsid lagras i en cookie på användarens dator. Om användaren har ställt in sin webbläsare till att inte ta emot cookies måste du använda metoden response.encodeURL(String url) se  response .
En servlet måste hämta session-objektet ur request-objektet för att ha tillgång till det. Du hämtar session-objektet såhär:
HttpSession session=request.getSession();

2. Spara objekt i sessionen

Ofta vill man lägga till objekt till sessionen för att knyta dem till användaren. Du kan addera och ta bort objekt med dessa metoder:

Metoder Returnerar Beskrivning
getAttributeNames()  Enumeration  Returnerar en Enumeration innehållande alla namnen på de objekt som finns lagrade i sessionen.
setAttribute(String name, Object obj)  void  Lägger till objektet obj till sessionen.
getAttribute(String name)  Object  Returnerar det objekt som har namnet name.
removeAttribute(String name)  void  Tar bort det objekt som har referensen name ur sessionen.

3. Sessionens liv

Dessa metoder har med sessionens livslängd att göra:

Metoder Returnerar Beskrivning
invalidate()  void  Kastar sessionen omedelbart.
getCreationTime()  long  Returnerar en long som representerar det datum då sessionen skapades.
getLastAccessedTime()  long  Returnerar en long som representerar det datum då användaren senast skickade en HTTP-förfrågan till servern.
getMaxInactiveInterval()  int  Returnerar int antal sekunder som servern behåller sessionen då användaren är inaktiv.
setMaxInactiveInterval(int sec)  void  Sätter antal sekunder som servern behåller sessionen då användaren är inaktiv.