봉봉의 개인 블로그

Listener 와 Filter 본문

관련 지식

Listener 와 Filter

봉봉이네 2017. 6. 29. 09:04

Listener란

Listener는 특정 상황을 모니터링 하다가 해당 상황이 발생하면 동작하는 일종의 servlet 으로 웹애플리케이션 시작 및 운영 종료 과정에서 발생하는 일련의 과정에서 특정 상황에 필요한 작업을 처리하기 위해 사용한다.


(Listener class)                                                                   (모니터링 내용)

javax.servlet.ServletContextAttributeListener            :    서블릿 컨텍스트에 속성의 추가/삭제/수정

javax.servlet.http.HttpSessionListener                     :    세션상태변화(사용자 접속현황)

javax.servlet.ServletRequestListener                       :    사용자 요청 발생시

javax.servlet.ServletRequestAttributeListener            :    Request 속성의 추가/삭제/수정

javax.servlet.http.HttpSessionBindingListener           :    속성을 넣고자 하는 대상이 세션에 포함되어 있는지 확인

javax.servlet.http.HttpSessionAttributeListener          :    세션 속성의 추가/삭제/수정

javax.servlet.ServletContextListener                        :    애플리케이션 컨텍스트 생성/소멸

javax.servlet.http.HttpSessionActivationListener        :    세션의 활성화 상태


Listener 구조

*ServletContextListener 의 경우 인터페이스 구현을 통해 Listener class 작성

*톰캣 시작과 함께 web.xml 설정을 참고해 Listener 를 시작함

*Listener 의 contextInitialized()메서드에서는 작업을 수행하고 필요하다면 속성 객체를 만들어 ServletContext 즉 application 범위에 속성을 저장해 모든 애플리케이션에서 참고할 수 있도록 한다.

*Listener 동작이 끝나면 Load-on-startup 으로 설정된 일반 servlet이 실행된다.



servlet filter란

*Listener 와 함께 대표적인 특별한 형태의 serlvet

*사용자 요청에 따라 특정 serlvet 이나 JSP가 실행되기전 사전 작업 수행

*여러 개의 servlet을 다양한 조건으로 설정해 하나의 요청에 여러 filter 가 사전에 수행 될 수 있도록 할 수 있음

*servlet filter 를 사용하는 목적

-인정

-오깅/감사

-이미지 변환

-데이터 압축

-국제화

-xml 변환

servlet filter 구조

*javax.servlet.Filter 인터페이스 구현

*Filter Mapping 설정에 따라 Filter Class의 doFilter()메서드 호출

'관련 지식' 카테고리의 다른 글

JQuery 메서드정리  (0) 2017.06.30
mybatis란  (0) 2017.06.30
MVC 계층  (0) 2017.06.27
[Spring] MVC 패턴에서의 5가지 계층에 대한 정보  (0) 2017.06.26
Maven 정리  (0) 2017.06.26
Comments