<3. Spring MVC의 구성 요소>
http://www.edwith.org/boostcourse-web
org.springframework.web.servlet.LocaleResolver
org.springframework.web.servlet.FlashMapManager
FlashMap객체를 조회(retrieve) & 저장을 위한 인터페이스
RedirectAttributes의 addFlashAttribute메소드를 이용해서 저장한다.
리다이렉트 후 조회를 하면 바로 정보는 삭제된다.
org.springframework.web.context.request.RequestContextHolder
일반 빈에서 HttpServletRequest, HttpServletResponse, HttpSession 등을 사용할 수 있도록 한다.
해당 객체를 일반 빈에서 사용하게 되면, Web에 종속적이 될 수 있다.
org.springframework.web.multipart.MultipartResolver
* 요청 전달시 사용된 컴포넌트
org.springframework.web.servlet.HandlerMapping
org.springframework.web.servlet.HandlerExecutionChain
HandlerExecutionChain구현체는 실제로 호출된 핸들러에 대한 참조를 가지고 있다.
즉, 무엇이 실행되어야 될지 알고 있는 객체라고 말할 수 있으며, 핸들러 실행전과 실행후에 수행될 HandlerInterceptor도 참조하고 있다.
org.springframework.web.servlet.HandlerAdapter
실제 핸들러를 실행하는 역할을 담당한다.
핸들러 어댑터는 선택된 핸들러를 실행하는 방법과 응답을 ModelAndView로 변화하는 방법에 대해 알고 있다.
디폴트로 설정되어 있는 핸들러어댑터는 HttpRequestHandlerAdapter, SimpleControllerHandlerAdapter, AnnotationMethodHanlderAdapter 3가지이다.
@RequestMapping과 @Controller 애노테이션을 통해 정의되는 컨트롤러의 경우 DefaultAnnotationHandlerMapping에 의해 핸들러가 결정되고, 그에 대응되는 AnnotationMethodHandlerAdapter에 의해 호출이 일어난다.
* 요청 처리시 사용된 컴포넌트
org.springframework.web.servlet.ModelAndView
org.springframework.web.servlet.RequestToViewNameTranslator
* 예외 처리시 사용된 컴포넌트
org.springframework.web.servlet.handlerexceptionresolver