:arrow: Quando você dá request.getSession() ele cria a session caso ela ainda não exista.
:arrow: session.setAttribute(nome, objeto) joga um objeto na sessão. session.getAttribute(nome) retorna o objeto associado àquele nome.
:arrow: validar a sessão? A sessão sempre é válida enquanto você não chamar o método invalidate ou ela expirar. E quando ela é invalidada, você não consegue mais acessar seus objetos. Portanto, você sempre trabalha com os objetos dentro da sessão.
Funciona mais ou menos assim: se você quer por exemplo ter o login armazenado nela, você dá um session.setAttribute(“login”,“nome_do_usuario”); aí, você depois pega o atributo login e vê se ele é igual “nome do usuário”.