2013-06-04 1 views
0

스프링/동면 모드를 사용하는 웹 응용 프로그램이 있습니다. 나는 요구 사항이있다. 나는 세션에서 몇 가지 정보를 유지하고있다. 세션 시간이 초과되기 전에 모든 세션 개체를 다시 가져와야하고 새 세션이 만들어지면 다시 세션 개체를 세션에 넣어야합니다. 세션 시간이 초과되면 로그인 페이지가 표시되고 사용자가 로그인하면 로그인 한 사용자의 저장된 세션 정보를 백업에서 가져와 세션에 보관해야합니다.세션이 시간 초과되기 전에 세션 개체를 복원 하시겠습니까?

위의 두 가지를 달성하려면 HttpSessionListener를 구현해야합니다. 한 번에 어떻게 모든 사용자가 로그인 한 모든 세션 객체를 백업 할 수 있습니까? 일단 새 세션이 생성되면 다시 로그인 한 사용자의 세션 객체를 백업에서 가져 와서 세션에 보관하십시오. 나에게 접근법을 제안 해주세요.

public class MySessionListener implements HttpSessionListener { 

    @Override 
    public void sessionCreated(HttpSessionEvent event) { 
    } 

    @Override 
    public void sessionDestroyed(HttpSessionEvent event) { 
    } 
} 

답변

0

난 당신이 데이터베이스 대신 같은 방식으로 데이터를 저장한다고 생각합니다. 그런 식으로 데이터를 유지하는 것은 좋은 방법이 아닙니다. 귀하의 신청 요건에 대해 알고 있지 않습니다. 세션 설정이 만료 된 후 세션 설정 &이 속성을 제거 할 때 데이터를 설정하는 올바른 방법.

응용 프로그램이 보안과 관련된 경우 보안 스레드가 생성됩니다. 매우 빠른 결과로 작은 것을 성취하는 대신 올바른 접근과 패턴으로 좋은 코딩을하십시오.

0

Servlet API는 모든 유효한 세션 개체를 나열하는 방법을 제공하지 않습니다. 당신은 그들을 붙잡아 야합니다. 창작자이기 때문에 이것을 아는 것이 어려워서는 안됩니다.

백업을 위해 데이터베이스가 완벽한 것 같습니다. 특정 사용자에 대해 sessionDestroyed 방법으로 DB에 쓸 수 있습니다. sessionCreated 메서드에서 DB에서 해당 사용자의 값을 검색 할 수 있습니다.

참조 : how do i get a list of all httpsession objects in a web-application

관련 문제