2011-10-27 2 views
1

스프링 MVC에서 만료 된 세션을 어떻게 처리 할 수 ​​있습니까? 처리하는 가장 좋은 장소는 무엇입니까? 세션 시간 제한은 어디에 지정할 수 있습니까? 몇 가지 예를 통해 나를 보여줄 수 있다면 좋을 것입니다.봄에서 세션이 만료되었습니다. MVC

답변

0

세션의 경우 '일반'Servlet API를 사용하고 있습니다.

사용자 정의 javax.servlet.http.HttpSessionListener은 012.xml([개])을 사용하여 web.xml 및 sessionCreated의 세션 설정 시간 초과에 정의됩니다.

나는 '구식'이라고 알고 있지만 간단하고 나를 위해 일합니다.

봄에서 시간 초과 값을 가져 오려면 세션의 ServletContext에 액세스 할 수 있습니다.

ApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(session.getServletContext()); 
applicationContext.getBean("..."); 
+0

Alephx, 답변 해 주셔서 감사합니다. 나는 컨트롤러 클래스에서 어디에 체크해야하는지 알고 싶었다. 처리 할 별도의 클래스 나 메서드를 작성해야하며 세션을 확인하는 가장 좋은 방법은 무엇입니까? – user965884

+0

내 답변은 앱 코드에서 자체 세션 시간 초과 설정에 관한 것입니다. 세션 상태를 확인할 수 있는지 확실하지 않습니다. 세션은 컨테이너 (Tomcat 등)에 의해 관리됩니다. 세션이 만료되면 세션이 무효화됩니다. 세션이 유효한지 만 확인할 수 있습니다. 이를 위해서는 Filter [Servlet way] 또는 Spring 인터셉터'org.springframework.web.servlet.HandlerInterceptor' [Spring MVC 방법]이 필요합니다. – alephx

0

하나의 옵션은 다음 세션 타임 아웃은 모든 콩에 루트의 WebApplicationContext에 이벤트가 발생하면 해당 이벤트를 관찰하는 것을 web.xml 파일에 HttpSessionListener을 등록 할의 event mechanism in ApplicationContext을 사용하는 것입니다. WebApplicationContextUtils를 사용하여 루트 WebApplicationContext를 가져옵니다.

관련 문제