사용자의 모든 세션을 만료시킬 수 있습니까?
을 사용하여 session
을 만료시킬 수 있음을 알고 있습니다.사용자의 모든 세션을 만료시킬 수 있습니까?
서블릿/JSP 인 Tomcat을 사용하고 있습니다. 세션에서
은 내가 속성userId
있습니다. 우리는이
session
특정 사용자에 속하는지 정의하는 기초
.
은 내가 특정 사용자 ID가 포함 된 모든 세션을 무효화해야하는 필요가있다.
사용자의 모든 세션을 만료시킬 수 있습니까?
을 사용하여 session
을 만료시킬 수 있음을 알고 있습니다.사용자의 모든 세션을 만료시킬 수 있습니까?
서블릿/JSP 인 Tomcat을 사용하고 있습니다. 세션에서
은 내가 속성userId
있습니다. 우리는이
session
특정 사용자에 속하는지 정의하는 기초
.
은 내가 특정 사용자 ID가 포함 된 모든 세션을 무효화해야하는 필요가있다.
사용 this code이 활성 세션을 관리하고 ID로 세션을 얻으려면, 당신은이 세션에 전화가 한 번 필요 무효화 할 수 있습니다 ..
public class SessionListener implements HttpSessionListener
{
private static Map<String, HttpSession> map = new
HashMap<String, HttpSession>();
public void sessionCreated(HttpSessionEvent event)
{
String id = event.getSession().getId();
logger.debug("session created : " + id);
// STORE THE SESSOIN FOR EXAMPLE IN DATABASE
map.put(id, event.getSession());
}
public static HttpSession getHttpSession(String sessionID)
{
return sessionObjectMap.get(sessionID);
}
public void sessionDestroyed(HttpSessionEvent event)
{
// get the destroying session...
}
}
좋은 답변 votedup. . 세션을 파기 할 때마다 .sessionDestroyed()가로드되고 호출됩니다. . 우리가 모든 세션을 파괴하려고 할 때만 오버로드 할 수 있습니까? –
HttpSessionListener 인터페이스에 있습니다. 최소한 선언을 구현해야합니다. – CloudyMarble
HashMap은 스레드로부터 안전한 클래스가 아니므로이 코드는 스레드로부터 안전하지 않습니다. 또한 "맵"은 결코 정리되지 않으므로 세션이 메모리에 영구히 남아있어 메모리 누수가 발생합니다. –
session.removeAttribute("userId");
는
HttpSessionListener
구현하여 청취자를 확인하고, 데이터 구조를 각각 생성 세션을 추가한다. . 지도를위한지도 또는 목록
같은 값으로 SessionId as Key
및 session object
를 사용합니다. . . . 모든 세션이 컨테이너에 의해 생성 될 때
무시 sessionCreated(HttpSessionEvent event)
및 sessionDestroyed(HttpSessionEvent event)
sessionCreated(HttpSessionEvent event)
방법 모두가 호출된다. . 우리는이 창조 시간에 우리가 그걸로하고 싶은 일을 할 수 있습니다. . 같은 목록에 추가하거나 어느 세션이 파괴되거나 무효화 (중 코드 또는 서버가 시간 초과)하는 경우
sessionDestroyed(HttpSessionEvent event)
가 호출 될지도. . 우리는 파괴하기 전에 그걸로 무엇을 할 수 있습니다. . . 총 로깅 된 시간과 같습니다. . 목록 또는지도에서 삭제하십시오. .
'HttpSessionListener'를 생성하고 각각의 생성 된 세션을'List'에 추가하여'context'에 넣을 수 있습니다. 그런 다음'List'를 반복하여 속성에 대한 각'session' 검사를 얻고'invalidate()'!! – NINCOMPOOP
모든 세션 값을 비울 수 있습니다 .. –