Ol� Augusto,

Uma "Session" � criada todas as vezes que o cliente abre uma instancia
do seu navegador (IE, Netscape, ...) e faz um "request" para o ser
WebServer. A "Session" � destru�da ap�s o "tempo" que voc� especificou
para o seu WebServer "ou" para o "tempo" que voc� especificou para a
sua aplica��o.

Normalmente (apdr�o) voc� n�o sabe quando o cliente "fecha" o seu
navegador, por isso existe o tempo limite da existencia da sess�o.
Esse tempo � o tempo de inatividade do cliente. Entenda por
inatividade se ele n�o fizer nenhum "request" para seu webserver no
tempo limite especificado por voc�.

Mas, se voc� desejar saber "aproximadamente" quando o cliente fecha o
navegador, voc� fai ter que sobrecarregar seu servidor webserver
perguntando (digamos a cada 15 segundos) se o seu cliente ainda esta
conectado ao seu WebServer - para isso voc� vai ter que implementar na
m�o este m�todo atrav�s do protocolo HTTP. Eu, pessoalmente, n�o
recomendo voc� fazer isso nunca !!! J� imaginou voc� ter umas poucas
conec��es e estar verificando a cada x segundos se o cliente fechou o
seu navegador "ou" foi para outro site ??? N�o faz muito sendido n�o
:-)) � melhor voc� deixar seu webserver ou aplica��o tomar conta
disso. Ali�s, eles fazem isso muito bem !!! :-))

Bem, tamb�m n�o confie que voc� parando e reiniciando o Apache Tomcat
o cliente vai ter uma nova sess�o. Isso depende se o valor "session"
n�o foi armazenada pela aplica��o no cliente atrav�s de Cookie. Mas
uma coisa voc� pode ter certeza absoluta : Cada cliente � unico para
uma �nica session. Isto �, uma session s� pertencer� a um �nico
cliente "seguramente". :-)).

Finalmente, entenda por "cliente" uma instancia do navegador aberto no
cliente. Bem, agui vai agora uma pimentinha para arder sua cabe�a : Se
o cliente abrir outra janeja (n�o Instancia do navegador) do
navegador, ent�o sua aplica��o receber� requests de duas janelas com
coisas diferentes mas tudo tendo como or�gem uma mesma session (Um
cliente pode fazer isso apertando as teclas CTRL+N no IE). A� voc�
"TEM" que tratar isso na sua aplica��o, sen�o ser� uma bagun�a geral
... com resultados imprevis�veis :-)) O Bom desta historiazinha � que
"normalmente" ninguem faz isso :-))  E a outra coisinha boa � que tem
jeito de voce saber se � um request de uma session j� existente
(Instancia aberta) ou se � um request de uma session de uma "nova"
instancia criada pelo cliente !!!

Para saber mais sobre "sessions" (e outras coisas 'misteriosas' dos
WebServers), recomendo a leitura/estudo da "Base de Conhecimento" do
projeto Jakarta, que deu or�gem � quase da totalidade dos WebServs
existentes hoje em dia no mercado.

Boa sorte,
MMFernandes.

----- Original Message -----
From: "Augusto Cesar Castoldi" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, August 13, 2002 8:14 PM
Subject: [java-list] Renovando uma Sess�o


Ola

como eu fa�o para contralar a sessao da minha
aplicacao com o usuario?

Quero criar uma nova sessao quando ele faz login, e
destrui-la (al�m de invalidar .invalidate()) quando
ele faz logoff.

Como fazer isso? Acontece que o tomcat cria uma sessao
assim que o usuario chega ao site. Se houver um
periodo de inatividade, eu n�o consigo restaurar a
sess�o depois. Se eu derrubar o tomcat, da� sim o
visitante ganha uma nova sessao....

obrigado pela atencao.

ate mais,

Augusto




_______________________________________________________________________
Yahoo! PageBuilder
O super editor para cria��o de sites: � gr�tis, f�cil e r�pido.
http://br.geocities.yahoo.com/v/pb.html

------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP 
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a