최초 앞단에서 request 요청을 받아서 필요한 클래스에 넘겨준다.
왜?
web.xml에 다 정의하기가 너무 힘듬.
이때 새로운 요청이 생기기 때문에 request와 response가 새롭게 new될 수 있다. 그래서 아래의 RequestDispatcher가 필요하다.
필요한 클래스 요청이 도달했을 때 FrontController에 도착한
request와 response를 그대로 유지시켜준다.
URI 혹은 자바파일에 대한 요청이 오면 바로 자원에 접근을 하지 못한다. 이 요청이 톰켓으로 이동하게 되면 톰켓은 request 객체와 response 객체를 만든다. request 객체는 요청에 대한 모든 정보를 가지고 있다. 톰켓은 이 request요청에 대한 정보를 바탕으로 response를 생성한다.
그럼 이렇게 request와 response 객체를 만들어서 얻는 이점이 뭘까?
자바에서 response.xx 이런 식으로 변수나 함수를 이용할 수 있다.
FrontController 패턴을 직접짜거나 RequestDispatcher를 직접구현할 필요가 없다. 왜냐하면 스프링에는 DispatcherServlet이 있기 때문이다. DispatcherServlet은 FrontController 패턴 + RequestDispatcher이다.
DispatcherServlet이 자동생성되어 질 때 수 많은 객체가 생성(IoC)된다. 보통 필터들이다. 해당 필터들은 내가 직접 등록할 수 도 있고 기본적으로 필요한 필터들은 자동 등록 되어진다.