티스토리 뷰

Java/Servlet & JSP

<Servlet> 리스너(Listener)란?

면목동인간 2023. 10. 3. 21:07

리스너란?

 서블릿에서 리스너란 특정 이벤트가 발생하면 자동으로 리스너에 정의된 동작을 실행한다

 

리스너의 활용 예

  • 웹 애플리케이션이 시작되거나 종료될 때 특정한 작업 수행
  • 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를 감지(이벤트 발생)하여 사용자가 로그인을 하면 어느 사용자가 로그인 하였는지 로그를 남길 수 있으며(리스너 동작), 다른 동작을 수행할 수 있다.

 

 


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

 

댓글
최근에 올라온 글
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함
Total
Today
Yesterday