3
respostas

Dúvidas com a Session

Primeiramente, bom dia a todos!

Estou com uma dúvida, se alguém puder me ajudar serei muito grato! Vamos lá, esse conceito de session ficou meio superficial para mim, não entendi direito. Pois, de acordo com a Aula 07 do curso de Servlets, o exemplo do professor, a session é criada antes do login? É isso? Mas no código ela é criada no login. Não entendi direito, não ficou muito claro isso de session no cliente (o cookie estava no cliente) e ao mesmo tempo o usuário deslogado no servidor, parece extremamente fácil, mas me confundiu. E sobre aquele método citado pelo professor na aula: "req.getSession().setMaxInactiveInterval(arg0)" : o correto seria colocá-lo no FiltroDeAuditoria? Esse negocio de session me confundiu legal!

Obrigado pela atenção de todos =D

3 respostas

Oi Tiago,

Vou tentar deixar um pouco mais claro este conceito de session.

O cookie é um arquivo de texto que fica na máquina do cliente. Você pode utilizá-lo para armazenar dados se quiser mas não é tão seguro pois qualquer um que consiga acesso à máquina pode ler o que está lá dentro.

A session é uma área mais segura que fica na memória dentro do servidor onde é possível armazenar dados. Cada session pertence a um usuário específico e a forma de identificar qual session pertence a qual usuário é guardando o id da session nos cookies na máquina do cliente.

Quando o usuário abre uma session no servidor, este id é enviado e os dados do cliente passam a ser guardados no servidor.

Cada requisição que o usuário fizer a partir deste momento, o próprio navegador enviará o id da session para que os dados sejam recuperados.

A session é criada pelo seu servidor quando necessário. Quando você faz request.getSession() pode ser que a sessão já esteja criada e o servidor só retorne a sessão que já está em uso.

Ficou um pouco mais claro?

Abraço!

Boa tarde Joviane!

Primeiramente obrigado pela explanação, mas tenho outra dúvida kkkk Ao abrir a página raiz do projeto /gerenciador, eu abri o network e os cookies no console e observei que a session já estava na requisição (antes mesmo de eu realizar o login, antes de acessar o diretório /gerenciador/login), como isso é possível? A Sessions não é atribuída apenas após o login ?(meu código foi feito de acordo com o do professor)

Tiago boa tarde,

Se eu nao me engano a Session é criada desde o primeiro contato do usuário com o servidor. Ou seja, na primeira vez que é feito um request ao servidor. O que voce faz no Servlet Login é apenas utilizar um recurso da Session.

Me corrijam se eu estiver equivocado.