As sessões funcionam de forma similar aos cookies, porém o armazenamento da informação fica no próprio servidor, sendo gerada uma chave randômica que é enviada ao cliente para poder acessar àquela informação. Uma sessão em java é um objeto da classe HttpSession
(javax.servlet.http
) e pode ser acessada no servidor através do método da requisição getSession
.
Session session = req.getSession();
Diferentemente dos cookies que só recebiam parâmetros com o tipo String
, as sessions podem receber quaisquer tipos de objetos como atributos. Para tal, utilizamos o método setAttribute
da classe HttpSession
que receberá uma chave com uma String
descrevendo o que será armazenado e um valor que será o objeto a ser preservado na sessão.
session.setAttribute("chave", valor);
Para acessar o atributo, usamos o método getAttribute
, passando a chave que foi cadastrada para o atributo.
session.getAttribute("chave");
Para remover o atributo da sessão, usa-se o método removeAttribute
do HttpSession
, passando a chave do atributo a ser removido.
session.removeAttribute("chave");
Podemos também invalidar a sessão caso se deseje perder todos os atributos cadastrados na mesma.
session.invalidate();