1. Spring MVC란?

Model 1 에서는 Controller와 출력하는 jsp가 하나로 합쳐있었지만 Model2가 되면서 둘을 나누게 된다.
나누면서 Controller에 해당하는 부분은 Sevlet으로 구현, Jsp를 별도로 빼서 출력을 담당하게 한다.
이때 Dispatcher를 이용해서 Forwarding을 했었는데 이렇게 되면 모든 Controller는 Dispatcher기능을 구현해야하며
이렇게되면 비효율적이게 된다.

그래서 순수하게 일반적인 Java Class인 POJO(Plain Old Java Object)로 Controller 기능만 구현되게 만든다.
Dispatcher기능만 남게되는데 Dispatcher는 jsp를 forwarding하는 기능이기때문에 그 기능이 똑같으므로
여러 개 놔둘 필요 없이 하나만 놔둔다.
Dispatcher는 사용자 요청이 오게되면 그 요청을 Controller에게 전달하고 그 요청의 결과값을 반환받아서 View에 전달한다. Dispatcher는 사용자 입력값이 있으면 Controller에 쉽게 전달되도록 전달값을 포장해주기도 한다.
이로 인해 기본형이나 어떤 데이터를 객체화해서 Controller로 보낼 수 있게 된다.
Controller에는 Dispatcher 기능이 없기때문에 Controller는 톰캣과 WAS에 대한 결합력이 낮아짐.
Spring이 제공하고 있는 Servlet Dispatcher는 모든 URL의 요청을 받아 적절하게 알맞는 Controller에게 배분해준다.
URL에 대한 정보를 어떤 Controller가 처리할 지에 대한 정보가 필요하기때문에 이에 대한 설정 파일이 필요하다.
즉, Servlet Dispatcher에 url-mapping정보를 작성하게 된다.
Dispatcher가 요청하면 Controller는 model과 view값을 반환하는데
이 view값을 통해 알맞은 view를 찾아서 사용되는 출력데이터인 model을 전달하게 된다.
Dispatcher Servlet 라이브러리를 통해 사용이 가능함.
'개발자 공부 > Spring' 카테고리의 다른 글
| MVC (3) - View 페이지를 위한 위치 (0) | 2023.04.12 |
|---|---|
| MVC (2) - web.xml / Dispatcher Servlet .xml / handleRequest (0) | 2023.04.11 |
| AOP(5) - 간소화된 Advisor (0) | 2023.04.10 |
| AOP(4) - Advisor란? / Pointcuts / JoinPoint / Weaving (0) | 2023.04.10 |
| AOP(3) - Before Advice / After Returning Advice / Throwing Advice (0) | 2023.04.10 |