Spring 서블릿 리스너와 서블릿 필터

Spring Web MVC

백기선님의 강의인 Spring Web MVC 강의를 듣고 공부한 내용을 정리한 글

서블릿 리스너?

서블릿 리스너의 역할에 대해 알아보자.

서블릿 컨테이너가 구동될 때 DB 커넥션을 맺어놓고 DB 커넥션을 서블릿 애플리케이션에서 만든 여러 서블릿에게 제공해줄 수 있다.

이때 서블릿들이 DB 커넥션이 필요한 이벤트를 감지해서 서블릿 컨테이너에게 커넥션을 가져오고자 할 때 사용하는 것이 서블릿 리스너이다.

웹 애플리케이션에서 발생하는 주요 이벤트를 감지하고 각 이벤트에 특별한 작업이 필요한 경우 사용한다.

서블릿 컨텍스트 수준의 이벤트로는

  • 컨텍스트 라이프 사이클 이벤트

  • 컨텍스트 애트리뷰트 변경 이벤트

가 존재하며

세션 수준의 이벤트로는

  • 세션 라이프사이클 이벤트

  • 세션 애트리뷰트 변경 이벤트

가 존재할 수 있다.

즉 서블릿 컨텍스트 수준의 이벤트가 2개, 세션 수준의 이벤트가 2개 총 4개의 이벤트가 존재한다.

각각의 이벤트는 서로 다른 인터페이스로 구성이 되어있기 때문에 구현할 때 원하는 이벤트에 따라 알맞는 인터페이스로 구현해야한다.

이벤트 인터페이스를 구현한 리스너를 사용하기 위해서는 web.xml에 등록하여 사용할 수 있다.

서블릿 필터?

들어온 요청을 서블릿으로 보내기 전에 어떤 처리를 할 때 사용하는 것이 서블릿 필터이다.

이러한 필터를 사용하면 여러개의 서블릿에 일관된 작업을 해줄 수 있을 것이다.

서블릿 컨테이너에서 서블릿으로 갈 때 필터를 거쳐간다.

Filter 인터페이스를 구현하여 사용가능 하며, doFilter 메소드를 오버라이딩하여 사용할 수 있다.

Filter 역시 web.xml에 정의하여 사용할 수 있다.

Reference

인프런 백기선님의 스프링 Web MVC



© 2022. by minkuk

Powered by minkuk