본문 바로가기

Spring

Spring에서 HttpSessionListener의 사용

반응형

Spring에서 HttpSessionListener의 사용


HttpSessionListener를 이용해서 세션이 생성되고 파괴될 때 특정 작업을 수행할 수 있다.

HttpSessionListener를 구현한 클래스를 만든다.
--------------------------------------------------------------
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class EventSessionListener implements HttpSessionListener{

     private MemberService memberService;

 //세션이 생성될 때 호출
@Override
public void sessionCreated(HttpSessionEvent sessionEvent) {
 //Spring 컨테이너에 등록된 특정 객체를 호출하고자 할 때는 
 //ApplicationContext를 이용해 원하는 객체를 주입받는다.
HttpSession session = sessionEvent.getSession(); 
 ApplicationContext context =            WebApplicationContextUtils.getWebApplicationContext(session.getServletContext()); 
 memberService = (MemberService) context.getBean("memberService");
}
 //세션이 파괴될 때 호출
@Override
public void sessionDestroyed(HttpSessionEvent sessionEvent) {
}
}
----------------------------------------------------------------
web.xml에 EventSessionWork를 등록(클라이언트의 요청에 위해 등록한 EventSessionListener가 호출됨)

<listener> 
   <listener-class>kr.spring.listener.EventSessionListener</listener-class> 
</listener> 


반응형