중요 학습 내용 [Servlet]
Listener
- 웹서버 상의 life-cycle 중, 발생하는 이벤트를 감지하여 특정 이벤트에 대한 로직을 구성할 수 있다.
- uses:
- 서비스 전반적으로 어떤 일이 일어났는지 모니터링하거나 로그를 남겨둘 때 사용(장애 발생 시, 문제발생 시점 및 문제 해결을 위함)
- HTTP 요청에 대한 처리
- Listener는 interface로, Adaptor가 Listener를 구현하여 Adaptor를 상속받아 사용하는 경우가 많았으나, 최근 편의상 직접 구현을 통해 사용한다.(interface에서 강제성을 낮춘 메소드 정의)
- 사용자가 직접 서버 내의 저장공간(context, session 등)에 접근하여 문제가 발생할 수 있기에, 파사드 패턴으로 구현됨
Context Listener
- Context Listener가 어플리케이션의 on/off를 tracking
- application의 on-off 동안 유지되는 저장공간
- use: 로그를 발생시켜 어떤 시점에 어떤 로그가 생겼는지 파악 가능
Session Listener
- session: 지정 만료시간까지 존재하는 공간
- uses: 누적 방문자 수, 방문 시점 확인 등을 관리 가능
- binding: 특정 클래스가 session에 바인딩 되었는지 확인할 때는
해당 클래스에서 HttpSessionBindingListener를 구현하여 확인가능
- uses: session에 담긴 값들 중, 특별히 보고싶은 정보는 특정 클래스에서 구현하여 DB와의 상호작용이 가능
Request Listener
- 요청-응답 사이에만 존재하는 저장공간으로 Session Listener와 작동방식이 거의 동일하다.