[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…
[/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>
<listener>
<listener-class>Listener</listener-class>
</listener>
</web-app>[/code]
index.jsp
<%
request.getSession(true);
%>
[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+