Obsługa sesji - klasa HttpServletSession

Sesji potrzebujemy za każdym razem gdy chcemy przechować informacje w obrębie całego korzystania z aplikacji – np. obiekt użytkownika, który powinien być przechowywany poza serwletami:

Pierwsze i najbardziej podstawowe zastosowanie sesji to oczywiście logowanie. Pokażę najprostszy przykład autoryzacji (nie będziemy nawet łączyć się z bazą danych), pominę nawet stworzenie formularza logowania – jak widać po poniższym serwlecie znajdowałyby się w nim tylko dwa pola – username i passwd.

Kod jest bardzo prosty. Odbieram dwa parametry z formularza i jeśli login i hasło to admin, następuje wyjęcie obiektu sesji z żądania (ew. poprzedzone stworzeniem obiektu sesji) – request.getSession(). Pojawiła się też nowa instrukcja – response.sendRedirect() która wykonuje zwykłe przekierowanie z jednego adresu URL do drugiego.

Pozostaje tylko wrzucić użytkownika do sesji jako jej atrybut i przekazać sterowanie do serwletu, który jest już zabezpieczony. Samo sprawdzenie czy użytkownik się zalogował jest również bardzo proste. Metoda doGet() z klasy ProtectedPageController:

Jak widać wszystko sprowadza się do odebrania z sesji atrybutu o jakiejś nazwie. Metoda getAttribute() zwraca typ Object, dlatego dodatkowo potrzebna jest konwersja do odpowiedniego typu.

Ten artykuł jest elementem poniższych kursów: