Fim da sessão

[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:

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!

A sessão só morre se for dado um invalidate() ou se o client ficar algum tempo sem interegir com o site (isso que acaba acontecendo qnd o browser é fechado). E qnd o browser é aberto novamente, uma nova sessão é criada para ele no site.

Executem esses código, ae vcs vão ver qnd uma sessão é criada e qnd q ela é destruida.

Listener

[code]import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class Listener implements HttpSessionListener{

/* (non-Javadoc)
 * @see javax.servlet.http.HttpSessionListener#sessionCreated(javax.servlet.http.HttpSessionEvent)
 */
public void sessionCreated(HttpSessionEvent arg0) {
	
	System.out.println("Sessão criada");
}

/* (non-Javadoc)
 * @see javax.servlet.http.HttpSessionListener#sessionDestroyed(javax.servlet.http.HttpSessionEvent)
 */
public void sessionDestroyed(HttpSessionEvent arg0) {

	System.out.println("Sessão Destruida");		
}

}
[/code]
web.xml

[code]<web-app>

&lt;listener&gt;
	&lt;listener-class&gt;Listener&lt;/listener-class&gt;
&lt;/listener&gt;

</web-app>[/code]
index.jsp

&lt;% request.getSession&#40;true&#41;; %&gt;

[quote=“matheus”][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:[/quote]
Só o termo de dizer que a sessão morre qnd o browser é fechado que está errado. Ela não morre pq o browser foi fechado, e sim, pq expirou.
É o quem tem dizendo na especificação. E… fui meio chato com isso, pq eu estou estudando para a certificação da SCWCD, e tem umas questões de HttpSession sobre isso, e eu errava essas questões pq dizia que a sessão morria qnd o browser era fechado.
[]'s

Bem…

Não entendi muito bem (Já são 23:33 e ainda tenho que fazer um trabalho de Teoria dos Autômatos e Linguagens Formais pra entregar amanhã! Muita cabeça não está muito boa depois de uma reunião com o chefe).

Mas bem, dê uma olhada na interface HttpSessionListener, ela te diz quando uma sessão foi criada e destruida.

E para saber se uma pessoa está logada ou não, verifique se na sessão tem um atributo (que vc colocou na hora que ela se logou).

Ok! (Não se espante, é simples mesmo!)

T+