https://www.edwith.org/boostcourse-web/lecture/16763/
스프링 MVC의 프론트 컨트롤러
일을 처리하지는 않고 넘기는 역할만 수행함.
선처리 작업에서
LocaleResolver(지역정보).
FlashMapManager(임시 메시지, 리다이렉트시 삭제됨 addFlashAttrubute로 저장, url 파라미터 저장할때 사용되어짐).
RequestContextHolder(request,response,session 객체를 사용할 수 있게 하는 컴포넌트 ).
MultipartResolver(multipart을 받게 하는 컴포넌트)
등의 컴포넌트가 사용된다.
(multipart resolver 전략 )
HandlerMapping : 어떤 핸들러가 사용되어야 되는지 정보를 저장하는 컴포넌트.
HandlerExecutionChain : 실제로 호출될 핸들러를 참조하고 있는 구현체, HandlerMappin으로 HandlerExecutionChain을 호출한다.
HandlerAdapter : 실제 핸드러를 호출한다. 이름이 Adapter인 이유는 인터페이스처럼 구현되어져 있기 때문에, 형태가 다른 여러 컨트롤러를 동일하게 제어할 수 있기 떄문
ModelAndView : Controller의 처리후 보여줄 view와 결과값 model을 담아 전달하는 클래스
RequestToViewNameTranslator :
URL 요청 정보를 참고하여 뷰 이름을 생성해주는 오브젝트.
handlerexceptionresolver : 예외가 던져졌을때 어떤 핸들러를 실행할지에 대한 정보를 제공한다.
DefaultHandlerExceptionResolver를 이용해서 등록한다.
ViewResolver : 컨트롤러가 리턴한 뷰 이름을 바탕으로, 뷰 객체를 찾아줌
뷰 리졸버를 추가 설정하는것도 가능하다.