HttpSessionListener
(answer)을 등록하는 방법은 무엇입니까? 이렇게하면 세션이 파괴 될 때 알림을 받게되므로 마지막으로 방문한 페이지에 대한 정보를 데이터베이스에 저장할 수있는 완벽한 시간입니다.
세션 리스너는 다음과 같아야합니다
package com.rr87;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class YourSessionListener implements HttpSessionListener {
@Override
public void sessionDestroyed(HttpSessionEvent event) {
// Implement logic to save last visited page to database...
}
.
.
.
}
은 의 Web.xml에 아래 코드를 추가, 세션 리스너를 등록하려면 : 답변의
<web-app ...>
<listener>
<listener-class>com.rr87.YourSessionListener</listener-class>
</listener>
</web-app>
그리고 마지막 부분. sucesfull 로그 아웃시 데이터베이스에서 마지막으로 방문한 페이지 참조를 지울 수 있습니다.
컨테이너가 입력에 호출하는 javax.servlet.http.HttpSessionEvent 객체 를 만듭니다 세션 개체에 액세스 할 트로프 HttpSessionEvent
에 관한 공식 문서에서
[편집]
, HttpSessionListener 메소드. HttpSessionEvent 클래스는 리스너가 호출 할 수있는 다음과 같은 방법을 포함
HttpSession에 대해 getSession()
사용하면 같은 정보를 얻을 수있는 만들거나 가 파괴 된 세션 객체를 검색하는이 방법 원하는. javax.servlet.http.HttpSession 인터페이스에 대한 자세한 내용은 "서블릿 세션 소개"를 참조하십시오.
내가 생각하기에, 당신은 여전히 '파괴 된'세션에서 데이터를 얻을 수 있다고 생각합니다.
인터셉터에서 마지막으로 방문한 페이지 정보를 얻으려면 어떻게해야합니까? – rr87
요청합니다 .getRequestURL() 나에게 현재 페이지 URL 정보 제공 ?? – rr87
당신은 저를 잘못 이해합니다. 'YourSessionListener'는 인터셉터가 아니고 리스너입니다 ... 각 요청에 대해 발생 된 인터셉터 또는 서블릿 필터에서 마지막으로 방문한 URL을 가져 와서 세션에 저장하여 YourSessionListener에서 검색해야합니다. – PrimosK