2012-10-29 2 views
3

Java EE HttpSession에서 session timeout을 (setMaxInactiveInterval을 사용하여) 음수로 설정하면 브라우저가 닫힌 후에도 유지되어야한다고 생각했습니다. 그러나이 페이지 Session Lost when closing the browser에 따르면, 그렇지 않은 것처럼 보입니다.브라우저를 닫은 후에 세션을 유지하는 방법은 무엇입니까?

어떻게 이런 일이 발생할 수 있습니까? 그런 다음 쿠키를 사용하여 세션 ID를 저장해야합니까? 그러면이 세션 ID를 어떻게 스스로 생성 할 수 있습니까? 내가 직접 세션을 관리하면 HttpSession의 이점을 잃을 것이다.

이 경우 Tomcat을 사용하고 있습니다. 어떻게이 문제를 해결할 수 있습니까? 이 작업을 수행하는 가장 간단한 방법은 무엇입니까?

+1

1. 쿠키의 수명을 설정할 필터의 코드를 여기에 게시하십시오. 2. 브라우저가 쿠키를 허용하는지 확인하십시오. – kolossus

+0

@kolossus 아직 J2EE를 배우고 있지만 아직 필터를 건드리지 않았습니다. 브라우저를 닫은 후에 세션 (J2EE)이 지속됩니까? 또는 우리가 setMaxInactiveInterval에서 타임 아웃을 설정하면 브라우저가 닫히면 세션은 여전히 ​​파괴됩니까? – GMsoF

+0

아직 아무 것도 테스트하지 않으셨습니까? – kolossus

답변

0

쿠키를 사용하는 대신 데이터베이스에 플래그를 사용하여 해당 사용자가 로그 아웃했는지 여부를 확인할 수 있습니다. 따라서 필터와 쿠키에 대해 걱정할 필요가 없습니다.

사용자가 로그 아웃하면 플래그를 반드시 토글하십시오.

관련 문제