2012-01-11 2 views
2

웹 응용 프로그램에서 주석 기반 컨트롤러 (SPRING MVC)입니다. 나는 응용 프로그램 내의 모든 페이지에서 15 분Spring 3.1 MVC 프레임 워크 세션 관리

2) 팝업가 열리는

, 종류-의 통지에서 10 분 동안 유휴 안 내 응용 프로그램

1)에 SessionManagement을 구현하고 싶었다 사용자에게 abt 세션 만료 사실을 알리고 그에게 세션을 다른 15 분으로 연장 할 수있는 옵션을 제공해야합니다. 그렇지 않으면 기본적으로 응용 프로그램이 로그 오프해야합니다.

나는 스프링 MVC에서이를 위해 간단한 방법이 있어야한다고 생각합니다. 봄 3.1). 예를 들어, applicationContext.xml에서 컨트롤러 또는 일부 구성에 주석을 달 수있는 몇 가지 방법이 있어야합니다. 어떤 방법이 있어야합니다! 친구, 방법을 제안하여 나를 도우십시오. 여기에 샘플을 붙여 넣으면 큰 도움이 될 것입니다. 또한이 세션 관리 구현을 위해 단계별로 안내 할 수 있다면 큰 도움이 될 것입니다.

답변

3

스프링 MVC는 여기에 할 일이 거의 없습니다. 세션 제한 시간을 15 분으로 설정했다고 가정합니다. 단순히 사이트의 모든 페이지에 다음과 같은 자바 스크립트 코드를 삽입하고 페이지가로드 된 후 실행 :

function expireWarning() { 
    if(confirm("Your session will expire in 5 minutes, extend?")) { 
     $.ajax('/echo/json/'); 
     setTimeout(expireWarning, 10 * 60 * 1000); 
    } 
} 

setTimeout(expireWarning, 10 * 60 * 1000); 

그것의 그! 10 분 후 팝업이 나타납니다. 사용자가 확인하면 AJAX 요청이 자동으로 세션을 확장하여 서버로 전송됩니다. 카운터는 10 분 후에 사용자에게 다시 물어보기 위해 일정을 조정합니다.

서버의 AJAX 대상은 아무 것도 할 필요가 없습니다. 이 호출의 유일한 목적은 사용자가이 세션 토큰을 계속 사용하고 있음을 컨테이너에 알리는 것입니다.

팁 : 사이트에서 이미 AJAX를 사용하고 있다면 모든 AJAX 호출이 세션을 확장하기 때문에 모든 호출 이후에 시간 초과를 다시 예약해야합니다. 사용자가 사이트에 머무르면서 많은 AJAX 호출을 트리거하면 세션은 자동으로 반복해서 확장됩니다.

+0

고맙습니다. Tomoasz. 여기 당신이 팝업을 생성하는 방법에 대한 제안을 내 질문에 내 응용 프로그램에서 전체 세션을 관리하는 방법입니다. SessionManagement 구현에 대해 얘기하고 있습니다 – Arun

+1

@Arun : 내 솔루션에 누락 된 부분이 있습니까? 이 간단한 코드 스 니펫을 모든 페이지에두고 2) 대소 문자를 완전히 처리합니다. 'ajax()'호출은 실제로 세션을 확장하고 15 분 안에 서버를 호출하지 않으면 세션은 자동으로 만료되어 효과적으로 사용자를 로그 아웃합니다. –

+1

@Arun 그 밖의 무엇이 필요합니까? 구체적으로 기재하십시오. Spring 세션에는 특별한 것이 없습니다 - 모든 곳에서 동일합니다. 이들은 JSessionID를 통해 관리됩니다. 로그인/로그 아웃에 대해 이야기하고 있습니까? –