- 사용자가 Controller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 데이터를 바탕으로 View를 통해 시각적 표현을 제어하여 사용자에게 전달하게 된다.
- Model: 내부 비즈니스 로직을 처리하는 역할
- Controller: 사용자의 요청에 맞는 데이터를 Model이 어떻게 처리할 것인지 알려주고 그 데이터를 View에 반영해 사용자에게 알려주는 역할
- View: Controller로부터 받은 모델의 결과값을 가지고 사용자에게 출력할 화면을 만드는 역할
- Controller 영역에 View 영역을 같이 구현하는 방식
- 사용자의 요청을 JSP가 전부 처리
- 요청을 받은 JSP는 JavaBean Service Class를 사용하여 웹 브라우저 사용자가 요청한 작업을 처리하고 그 결과를 출력
- 웹브라우저 사용자의 요청을 서블릿이 받고 서블릿은 해당 요청으로 View로 보여줄 것인지 Model로 보낼 것인지를 판단하여 전송
- HTML 소스와 JAVA소스를 분리해놓았기 때문에 모델 1 방식에 비해 확장시키기도 쉽고 유지보수 또한 쉬움
Model1 | Model 2 | |
---|---|---|
장점 | 빠르고 쉽게 개발 | 디자이너와 개발자의 분업이 가능하며 유지보수 및 확장이 쉬움 |
단점 | JSP파일이 너무 비대해지며 Controller와 View가 혼재하므로 향후 유지보수에 어려움 | 설계가 어려우며 개발 난이도가 높음 |