Fim da sessão

Ae galera …
seguinte … eu fiz uma aplicaçãozinha de acesso ao sistema … tipo o kra coloca senha ele valida e blz … soh q eu estou com um pequeno problema . Tipo quando o kra da um logout ele volta pra tela inicial. até ai blz … mas se ele apertar o avancar do navegador ele volta como se tivesse logado …

como eu faço pra sessão expirar:?!?!

Valeu ae !!!

ai vai cara um códigozinho para remover o atributo da sua sessão.

        HttpSession ses = request.getSession();
        if(ses.getAttribute("SessaoUsuario")!=null)
        {
            ses.removeAttribute("SessaoUsuario");
        }

além disso, vc pode invalidar a sessao inteira, dependendo do caso vc precisará, e o método pra isso tomando o exemplo acima seria:

        ses.invalidate();

Espero ter ajudado ai!

abraço!

onde eu tava mexendo com isso…
e nao funcionou legal…
se eu tivesse acabado de fazer logoff de depois SEM FECHAR o browser e digitasse o endereço direto de algum servlet q na teoria só teria q funcionar se a sessao estivesse aberta, abria a pagina normal!
mas se eu fechasse o browser e tentasse acessar alguma pagina q necessita de sessão aí sim nao abria e exibia uma msg q a sessao nao está aberta…

pq acontece isso?
ah! tem outra coisa!
eu setei minha sessao pra desativar automaticamente se ficasse inativa por 1 min… e se eu deixasse passar esse 1 minuto… a sessao expirava… e era redirecionado pra uma pagina de erro…
aí se eu tentasse acessar a pagina (essa q a sessao expirou) aí nao abria (funcionou)… mas qualquer outro servlet q usa a mesma sessão abria normalmente sem precisar fazer login…

estranho né?
ou é bug do programador mesmo? heheh :lol: :lol:

acho q está mais para a ultima opção! :stuck_out_tongue: :stuck_out_tongue:

:roll: :roll:

mas aí… tem esquema de nao deixar o cara voltar? pelo browser?
tipo, até da pra voltar… mas o servlet logo ve q a sessão nao está aberta e manda de volta pra msg de erro?

exatamente o que o New_Radical disse, vc voltando pelo browser ele vai voltar a pagina anterior conforme ela estava, pois ja está em cache, porem se vc voltar para ela e der um refresh, ele nao deverá aparecer, pois nao esta mais logado. entende?!

acho que eh isso!

cya!

tente setar um atributo na sessão, e qndo clicar em logout retire esse atributo, tipo:

Qndo o cara loga…
session.setAttribute(“logado”, new Boolean(true));

Qndo desloga…
session.setAttribute(“logado”, new Boolean(false));

Ae vc testa esse atributo nas páginas onde quem não for logado não deverá ter acesso…

Eu faço assim, e funciona legal =)

Abraços,

Eu to fazendo assim da forma q vc falou eltonk,
mas eu fazendo assim toda hr eu tenho q testar e o kra vai conseguir voltar se ele der o back no navegador soh q naum vai conseguir acessar nenhum informação … naum eh !!!

naum tem como quando o kra apertar o back no navegador ja expirar a sessão ?!?!?!

como se fosse desabilitar o back do navegador…

Nas Páginas JSP (Visão do meu projeto) eu adiciono o seguinte código:

<%
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //nao salva cache no servidor proxy
%>

Isso faz com que a página não seja salva em cache… Mas não encerra a sessão…
O que vc pode configurar eh um tempo menor para a sessão se encerrar. Eu sempre deixo 5min… acho um tempo bom para páginas com acessos restritos…
Lembrando tb, que se o browser é fechado, a sessão morre ali tb…

seguinte

eu coloquei esse codigo no meu JSP

<% 
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 
response.setHeader("Pragma","no-cache"); //HTTP 1.0 
response.setDateHeader ("Expires", 0); //nao salva cache no servidor proxy 
%> 

quando eu dou aperto o back do navegador a pagina esta expirada de boa … soh q se vc apertar o refresh na pagina expirada, ele aparece logado …!!!

pq?!!?!?!?! 8O

[quote=“New__Radical”][quote=“eltonk”]Nas Páginas JSP (Visão do meu projeto)

<%
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //nao salva cache no servidor proxy
%>

… Lembrando tb, que se o browser é fechado, a sessão morre ali tb…[/quote]
Onde que tem dizendo que se o browser é fechado a sessão é fechada?[/quote]

…isto não é o comportamento normal? bem, independente do código do elton, se tu fechar o browser, a sessão é fechada… :wink:

New_Radical

De que tipo de sessão vc está falando?!?!
Tu é deste mundo?! :stuck_out_tongue:
:space:
Com todas as letras, S I M, quando o browser é fechado a tua sessão é morta…
Não existem possibilidades de um usuário abrir o browser novamente entrar na página do seu banco e o seu login (feito alguns segundos antes e que vc depois fechou o browser) ainda permanecer ativo.
Pode ser na mesma máquina, na máquina do lado, lá na China…

[quote=“New__Radical”][quote=“matheus”][quote=“New__Radical”][quote=“eltonk”]Nas Páginas JSP (Visão do meu projeto)

<%
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //nao salva cache no servidor proxy
%>

… Lembrando tb, que se o browser é fechado, a sessão morre ali tb…[/quote]
Onde que tem dizendo que se o browser é fechado a sessão é fechada?[/quote]

…isto não é o comportamento normal? bem, independente do código do elton, se tu fechar o browser, a sessão é fechada… :wink:[/quote]
Nam nam nim nam não!
Quem te disse isso?!?!?! :roll:[/quote]

…ninguém me disse, é de ver acontecer mesmo! heheahaeh :smiley:

Bom, pelo que eu já em aulas e tudo mais, uma instancia de Session eh criada para cada pessoa mesmo, porém se o cliente(no caso o browser) é fechado a session eh finalizada. o que já não acontece com coockies.

mas na teoria a sessioon eh pra ser assim!

cya!

[quote=“New__Radical”]Okay, let’s go!

Uma sessão não é destruida quando o browser é fechado não. Ela vai continuar lah, “vivendo” no servidor. O que acontece, é que o cliente não vai mais poder pegar a sessão. Mas, a sessão não morre!
[/quote]

…humm, ta mas… se o cliente não pode mais pegar a sessão, e ela continua viva no server, no final das contas… ela morre por tempo certo? então… tem alguma maneira de eu devolver a sessão pro cliente depois de ter fechado o browser? … se não, vai dar na mesma, com sessão viva ou não, pro cliente, ta tudo morto… :roll:

aaahhhnn!!! tão ta ok ok! :smiley:

Vou pegar uma carona no assunto e mandar a minmnha dúvida…

Como eu faço pra descobrir se o usuário ainda não logou ou se a sessão expirou?
Pelo que eu testei aqui em nenhum dos dois casos a sessão é igual a null e nos dois casos qualquer atributo que eu tento ler usando getAttribute é igual a null. O que diferencia esses dois “estados” da sessão?

Thanks :slight_smile:

galera, trabalhar com session realmente eh chato…

tenho uma aplicacao q trabalha em ambiente distribuido e nao eh q a session se perde qdo o servidor troca de maquina…

o rapaz se loga com uma matricula e qdo vai trocar de tela vem dados de outra… to apanhando feio pra corrigir isso

hahahaha

O “programador” fez gambiarra nos códigos!

Voltar ele até pode voltar, pois a página pode estar em cache.
Mas, usar a página, ae não. Qnd ele clicar em algum link que necessite estar logado, ae o programa não vai deixar e vai redirecionar ele para alguma página.

[quote=“eltonk”]Nas Páginas JSP (Visão do meu projeto)

<%
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //nao salva cache no servidor proxy
%>

… Lembrando tb, que se o browser é fechado, a sessão morre ali tb…[/quote]
Onde que tem dizendo que se o browser é fechado a sessão é fechada?