2011-02-03 8 views
0

자체 세션 시간 초과 관리를 수행하는 응용 프로그램을 리팩토링하고 있습니다. 나는 HttpSession이 타임 아웃 값 설정을 지원한다고 언급했다.특정 페이지에서 javax.servlet.http.HttpSession의 시간 초과가 발생하지 않도록하십시오.

'시간 초과'페이지로 리디렉션되는 이벤트 수신기 (가정 해 봅시다)가 있습니다. 세션이 만료되어 죄송합니다. 로그인 페이지에 대한 링크가 있습니다.

문제는 처음으로 응용 프로그램을 실행하고 로그인 페이지에 앉아있을 때 세션 시간 초과 이벤트가 계속 발생한다는 것입니다. 그래서 로그인 페이지를보고 타임 아웃 페이지로 리디렉션됩니다.

내가 원하는 것은 내가 로그인 페이지에 있고 로그인 페이지에서만 세션 시간 초과가 발생하지 않는다는 것입니다. 어떻게해야합니까?

로그인의 ActionBean에서 기본보기 해상도로 HttpSession.setMaxInactiveInterval(-1)을 호출하려했지만 이미 작동하지 않았습니다.

페이지가 액세스 될 때마다 세션이 생성되고 있지만 반드시 인증 될 필요는 없다고 생각합니다.

+0

나는 그것이 청취자라고 생각하지 않습니다. 아마도 필터 + 리스너 일 것입니다. 코드를 보여줄 수 있습니까? – Bozho

+0

쉽지 않습니다. 이것은 아직 오픈 소스 애플리케이션이 아닙니다. 관련 필터 또는 수신기를 식별하려면 무엇을 찾아야합니까? HttpSession에서 사용법을 찾으십니까? – Freiheit

+1

누군가가 로그인 페이지를 클릭하면 세션이 생성됩니까? – Jeremy

답변

0

어디에서 리디렉션이 발생합니까? 선언적으로 설정 파일의 어딘가에 있다면,이를 제거하고 HttpSessionListener 인터페이스를 구현할 수 있습니다. u는 다음과 같은 만들 것 sessionDestroyed 방법에

: 세션이 인증 플래그가 포함 된 경우

  • 가 sessionEvent
  • 에서 세션을 가져 오기는

U는 마지막을 유지할 수 리디렉션 페이지가 사용자가 요청한 페이지를 리디렉션할지 여부를 결정하기 위해 참조로 사용하지만 사용자가 이미 인증되고 로그인 페이지로 이동하는 경우 어떻게해야합니까? 귀하의 응용 프로그램에 대한 많은 정보가 없습니다.

어쨌든 HttpSessionListener가 내가 생각하는 방법입니다.

관련 문제