티스토리 뷰
리스너란?
서블릿에서 리스너란 특정 이벤트가 발생하면 자동으로 리스너에 정의된 동작을 실행한다
리스너의 활용 예
- 웹 애플리케이션이 시작되거나 종료될 때 특정한 작업 수행
- HttpSession에 특정한 작업에 대한 감시와 처리
- HttpServletRequest에 특정한 작업에 대한 감시와 처리
리스터 예제 (세션 관련 리스너)
HttpSession 관련 작업을 감시하는 리스너는 HttpSessionListener나 HttpSessionAttributeListener를 구현하고 클래스에 @WebListener 어노테이션을 선언함으로써 HttpSession에 관련 작업이 이루어질 때 이를 감지하여 리스너에 정의된 동작을 실행할 수 있다.
@WebListener
@Log4j2
public class LoginListener implements HttpSessionAttributeListener {
@Override
public void attributeAdded(HttpSessionBindingEvent event) {
String name = event.getName(); // 세션 이름
Object obj = event.getValue(); // 세션 값
MemberDTO dto = (MemberDTO) obj; // 세션 값 형변환
if(name.equals("loginInfo")){
log.info(dto.getMid() + " user login...");
log.info(obj);
}
}
}
위의 코드에서 HttpSessionAttributeListener의 attributeAdded 메서드를 통해 HttpSession에 setAttribute를 감지(이벤트 발생)하여 사용자가 로그인을 하면 어느 사용자가 로그인 하였는지 로그를 남길 수 있으며(리스너 동작), 다른 동작을 수행할 수 있다.

본 포스팅은 “자바 웹 개발 워크북/구멍가게 코딩단 저”를 읽고 학습한 내용을 정리한 것
댓글
