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. |