Spring MVC 아키텍처
- modle : db와 상호작용하며 비즈니스 로직을 처리하는 모듈
- view : client에게 보여지는 결과화면을 반환하는 모듈
- controller : client 요청이 들어왔을 때 그 입력을 처리하고 어떤 로직을 실행시킬 것인지 제어하는 모듈
model1, model2 의 차이점
- 클라이언트의 요청 사항을 모듈화, 하나의 파일로 처리할 것인지
model1
- was에서 모든 파일에 클라이언트가 요청한 로직을 처리하는경우
- jsp에서 view, controller의 역할을 담당하며 그 결과를 클라이언트에게 반환한다
- 아키텍처 간단, jsp에 거의 모든 로직을 집어넣기 때문에 작은 웹 어플리케이션을 제작할 때에는 무리 없지만 대규모는 유지보수 힘듬
model2
- model1을 보완한 아키텍처
- model, controller, voem 부분 모듈화
- 로직 처리가 없어 단순히 client에게 보여지는 뷰만 담당
- 유지보수 간단
스프링 mvc 모델
- model2 방식
1. dispatcherservlet가 client요청을 받음 (중앙 제어실)
2. handlermapping이 알맞은 controller를 찾음
3. handlermapping에 실행할 controller의 메서드를 찾음
4. controller의 메서드를 실행하며 그 결과 model로서 dispatcherservler에 반환
5. viewresolver는 알맞은 jsp 파일을 찾음
6. view는 jsp 파일을 model의 정보를 토대로 client에게 반환