Fechar Sessao - objeto Session

Java

09/04/2009

Oi amigos... estou buscando como fazer uma sessão ser fechada e só achei em JavaScript... dei uma olhada nos meus livros, mas não achei nada... Como meu tempo é muito escasso, recori a ajuda de vcs... O que estou fazendo: qdo um cliente se loga ao meu sistema, armazeno seu código e seu nome na sessão. Porém, tenho uma opção SAIR, (que talvez mudarei para FECHAR SESSÃO) e preciso limpar esses registros. Podem me ajudar? a opção vai estar em um ítem de menu e será fechada ao clique do mouse.... obrigada mais uma vez! :roll: Andréa
Andréa Martins

Andréa Martins

Curtidas 0

Respostas

Marcos Pereira

Marcos Pereira

09/04/2009

Andrea, para fechar a sessão vc simplesmente usa o metodo [url=http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/http/HttpSession.html#invalidate()]invalidate()[/url]. Todos os objetos que vc tiver guardado na sessão serão descartados. valeuz...
GOSTEI 0
Marcos Pereira

Marcos Pereira

09/04/2009

certo, meu menu esta em javascript. No ítem sair, onclick="window.location='index.jsp';". Com isso ele volta à pagina inicial e pede login e senha novamente. Se eu voltar a página, percebo que a sessão não foi eliminada. Não sei como fazer porque mistura códigos JavaScript e Java. Pensei em fazer o seguinte: Na página inicial, coloco em uma das primeiras linhas um código que testa se é uma nova sessão: if (session.isNew()){ } else session.invalidate(); mas não estou tão certa se é realmente assim... vou testar aqui, mas se não for isso, me avisem. Obrigada, Andréa :oops:
GOSTEI 0
Marcos Pereira

Marcos Pereira

09/04/2009

[quote="Andréa Martins"]certo, meu menu esta em javascript. No ítem sair, onclick="window.location='index.jsp';". Com isso ele volta à pagina inicial e pede login e senha novamente. Se eu voltar a página, percebo que a sessão não foi eliminada. Não sei como fazer porque mistura códigos JavaScript e Java. Pensei em fazer o seguinte: Na página inicial, coloco em uma das primeiras linhas um código que testa se é uma nova sessão: if (session.isNew()){ } else session.invalidate(); mas não estou tão certa se é realmente assim... vou testar aqui, mas se não for isso, me avisem. Obrigada, Andréa :oops:
Faça assim:
window.location='index.jsp?invalidate=true'
No seu fonte da index
String ssRp = request.getParameter("invalidate");
if(ssRp != null)
   session.invalidate();
[]'s
GOSTEI 0
Marcos Pereira

Marcos Pereira

09/04/2009

E para limpar determinados itens da sessao e deixar outros ?
GOSTEI 0
Marcos Pereira

Marcos Pereira

09/04/2009

[quote="schneider"]E para limpar determinados itens da sessao e deixar outros ?
Bom, nesse caso, Guilherme, vc tem que remover os itens explicitamente usando o metodo [url=http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/http/HttpSession.html#removeAttribute(java.lang.String)]removeAttribute[/url]. valeuz...
GOSTEI 0
Marcos Pereira

Marcos Pereira

09/04/2009

Certo ... Gracias Jack :!: :!:
GOSTEI 0
Alexandre Jensen

Alexandre Jensen

09/04/2009

<%@ page import="java.sql.*" session="true" errorPage="error.jsp" %> <% [color=red:a1dacd13f2]session.putValue("s_id",null); session.setAttribute("usunome",null); session.invalidate(); response.sendRedirect("index.jsp");[/color:a1dacd13f2] %>
Isto estaria correto também? Caso positivo, faça assim! Para mim deu certo
GOSTEI 0
Dalton

Dalton

09/04/2009

[quote="Alexjensen"]
<%@ page import="java.sql.*" session="true" errorPage="error.jsp" %> <% [color=red:b3db7c3d4d]session.putValue("s_id",null); session.setAttribute("usunome",null); session.invalidate(); response.sendRedirect("index.jsp");[/color:b3db7c3d4d] %>
Isto estaria correto também? Caso positivo, faça assim! Para mim deu certo
Qual erro que deu?
GOSTEI 0
Marcos Pereira

Marcos Pereira

09/04/2009

[quote="Alexjensen"]
<%@ page import="java.sql.*" session="true" errorPage="error.jsp" %> <% [color=red:fb0c805bdd]session.putValue("s_id",null); session.setAttribute("usunome",null); session.invalidate(); response.sendRedirect("index.jsp");[/color:fb0c805bdd] %>
Alex, aqui parece que vc quer eliminar os atributos s_id e usunome da sua session, certo?! Bom, eu sinceramente faria apenas assim:
session.invalidate();
response.sendRedirect("index.jsp");
Porque?! Ora, porque o invalidade já remove todos os itens da session de maneira que vc não precisa se preocupar em setar essas propriedades para null. Alias, outros dois comentarios sobre seu codigo. 1. Não use putValue, está depreciado, use setAttribute; 2. Quando quiser "invalidar" algum atributo na session, o ideal é remover esse atributo ao inves de seta-lo para null. Use o metodo [url=http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/http/HttpSession.html#removeAttribute(java.lang.String)]removeAttribute[/url]. valeuz...
GOSTEI 0
Alexandre Jensen

Alexandre Jensen

09/04/2009

[quote="aspirante"][quote="Alexjensen"]
<%@ page import="java.sql.*" session="true" errorPage="error.jsp" %> <% [color=red:433aaefbe0]session.putValue("s_id",null); session.setAttribute("usunome",null); session.invalidate(); response.sendRedirect("index.jsp");[/color:433aaefbe0] %>
Isto estaria correto também? Caso positivo, faça assim! Para mim deu certo
Qual erro que deu?
Para mim não deu erro, funkou legal, mas como o jack falou aí, apenas o invalidate já funka. Dá certo da mesma forma.
GOSTEI 0
Edison Azevedo

Edison Azevedo

09/04/2009

Tentei fazer assim...mas não rolou... Eu sei que tenho que usar o session.invalidate().... mas como eu uso no caso de um botão sair ?
<a href="index.jsp"><img  src="images/botoes/btn-sair.jpg" border="0" style="cursor:hand;" onClick="window.location='index.jsp?session.invalidate=true' "></a>

GOSTEI 0
Everton Barros

Everton Barros

09/04/2009

[quote="edison_filho"]Tentei fazer assim...mas não rolou... Eu sei que tenho que usar o session.invalidate().... mas como eu uso no caso de um botão sair ?
<a href="index.jsp"><img  src="images/botoes/btn-sair.jpg" border="0" style="cursor:hand;" onClick="window.location='index.jsp?session.invalidate=true' "></a>

Nao entedi vc estah tentando invalidar sua sessao dentro de um parametro passado ao carregar uma outra pagina jsp? E outra coisa vc estah setando ela como true para q(Acho q isso ele nem aceita)? Cara vc vai ter q invocar um function javascript e redirecionar para um metodo, ai o seu metodo(código java)vai fazer com que sua sessão seja fechada com o metodo invalidate() "não precisa setar nada nesse metodo".
session.invalidate();
GOSTEI 0
Cristina Constantin

Cristina Constantin

09/04/2009

[quote="ebarros"][quote="edison_filho"]Tentei fazer assim...mas não rolou... Eu sei que tenho que usar o session.invalidate().... mas como eu uso no caso de um botão sair ? Eu crio um botão que envia para uma pagina encerrar.jsp. Na página encerra.jsp eu coloco o codigo a seguir: <html> <head> <title>Encerra Sessão</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <%@include file="cabecalho.jsp"%> <br> <div align="center"> <h2>Sessão Encerrada.</h2><br> <input name="login" type="button" value="Página Inicial" onClick="window.location='index.jsp';"> <%session.invalidate();%> </div> <%@include file="rodape.jsp"%> </body> </html> Isso funciona bem... espero ter ajudado. []s Cristina
GOSTEI 0
POSTAR