Filter
Filter는 request나 response가 서블릿에 들어가거나 나올 때 한 번 걸러지는 것
Listener는 이벤트 소스를 바라보다가 특정 이벤트가 발생하면 특정 함수를 실행하는 객체
Listener에서의 servletContextListener는 이벤트 소스로 servletContext를 바라보고 있다가 특정 이벤트가 발생하면 특정 함수를 실행시킨다.
Spring에서는 servletContextListener를 구현해서 servletContext가 initialized 될 때 spring container를 빌드한다.
Servlet과 Listener 각각 별개로 존재하고, 이벤트 발생 시 Listener가 동작하고, Filter는 Servlet 뿐만 아니라 자기도 처리해야 하는 요청이 있으면 해당 요청이 서블릿에 들어가기 전에 처리할 부분을 먼저 처리하고 Servlet에 보낸다. Filter가 처리하는 요청의 예시로는 인증, 권한 체크, 로그 남기기, 인코딩 등을 하는데에 쓰인다.