(사진 나중에 바꾸기)
프론트 컨트롤러 도입 전에는 클라이언트 요청이 서블릿 매핑을 통해 직접 바로 호출이 되었다.
따라서 공통적으로 처리해야 하는 기능을 컨트롤러마다 중복으로 코드를 작성해야 했다.
프론트 컨트롤러 도입해서 모든 요청을 프론트 컨트롤러 서블릿이 받도록 하고 여기서 공통 기능을 처리한다. 그리고 실행해야 하는 컨트롤러를 프론트 컨트롤러가 호출한다.
프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다(프론트 컨트롤러에서 호출해줄거니까)
스프링 웹 MVC의 핵심인 DispatcherServlet
이 Front Controller 패턴으로 구현되어 있다.