Eu tenho um Managed Bean Session Scoped controlando minha página, o problema é que quando a sessão expira e o bean é destruído, a página fica em um estado que nem um botão funciona mais, pelo que observei o JSF não cria uma nova instância do bean depois que ela expira, mesmo com o usuário mexendo na página. A única forma de voltar a funcionar é recarregando a página. Tem como contornar isto fazer com que o bean seja instanciado novamente?
Problema com Managed Bean Session Scoped
4 Respostas
cara,
esse comportamento é o correto, o que vc deve fazer quando sua sessão expirar é ter que fazer com que o usuario faça o login novamente.
t+
cara,esse comportamento é o correto, o que vc deve fazer quando sua sessão expirar é ter que fazer com que o usuario faça o login novamente.
t+
Quanto a isto tudo bem, porém, quando a sessão expirar, como vou saber se a página ainda está aberta no browser?
cara,
vc vai ter que fazer um filtro e ficar verificando se a sessao está ativa, se nao tiver, vc vai ter que encaminhar a solicitação do usuario para a pagina de login.
t+
cara,esse comportamento é o correto, o que vc deve fazer quando sua sessão expirar é ter que fazer com que o usuario faça o login novamente.
t+
Quanto a isto tudo bem, porém, quando a sessão expirar, como vou saber se a página ainda está aberta no browser?
Uma vez que você utilizar HTTP, RESTFull e outras coisas você tem que ter em mente uma coisa.
O único momento que você tem contato com o usuário é na hora que ele te chama. Se o cara deixou a pagina aberta por 3h ou 3min você nunca fica sabendo até a próxima chamada dele.
Quando a sessão é destruída tudo relacionado vai embora. O que você poderia fazer é criar um filtro que verifica se o usuário tem ou não sessão. Caso não tenha, você barra a requisição dele e redireciona ele para a mesma página.