sessionCreated 및 sessionDestroyed를 구현하는 한 완전히 신뢰할 만합니다. 유일한 단점은 앱이 실행 중이 지 않거나 다시 시작할 때 Tomcat이 알고있는 활성 세션을 잃어 버릴 수 있지만 작성되었거나 삭제 된 알림을받지 못했다는 것을 본 적이 없다는 것입니다.
ConcurrentHashMap과 같은 동시성을 처리하는 세션 데이터를 저장하고 있는지 확인하십시오.
다음은 간단한 예제이다
public class SessionData implements HttpSessionListener {
private final static Map<String, HttpSession> activeSessions = new ConcurrentHashMap<>();
@Override
public void sessionCreated(HttpSessionEvent se) {
HttpSession session = se.getSession();
if (session != null) {
String id = session.getId();
System.out.println("HTTP session created. ID: " + id);
activeSessions.put(id, session);
}
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
HttpSession session = se.getSession();
if (session != null) {
String id = session.getId();
System.out.println("HTTP session destroyed. ID: " + id);
activeSessions.remove(id);
}
}
}
_It은 당신이 그것으로 무엇을 하시겠습니까 useful._ 매우 것입니까? –
예를 들어, 나는 우리 애플리케이션이 Session 속성에 저장하는 동일한 (그리고 어떤) 사용자 토큰을 얼마나 많은 활성 세션이 사용하고 있는지 즉시 판단 할 수있다. – Black