JSP를 이용하여 구성할 수 있는 Web Application Architecture는 크게 model1과 model2로 나뉜다.
이 두 모델의 차이는 client의 요청에 대한 로직 처리와 response page(view)에 대한 처리를 모두 하는가, response page(view)에 대한 처리한 하는가가 가장 큰 차이다.
model1은 view와 logic을 jsp페이지 하나에서 처리하는 구조이다.
client로부터 요청이 들어오게 되면 JSP페이지는 java beans나 별도의 service class를 이용해서 작업을 처리하고 결과를 client에 전달한다.
장점
단점
model1과 다르게 client 요청에 대한 처리, logic 처리, 출력 처리를 분업하는 모델이다. 이는 순서대로 servlet, java class, jsp가 담당한다.
model2는 MVC 패턴을 웹 개발에 도입한 구조며 완전히 같은 형태를 갖는다.
위 표에 대해 간단하게 풀어보자면,
client로 부터 요청이 들어오면 Servlet이 제일 먼저 해당 요청을 받는다. 이를 MVC 패턴의 Controller라고 한다.
Servlet은 요청에 대한 Logic을 처리할 수 있는 java class를 찾는다. 그리고 이러한 비즈니스 Logic을 처리하는 부분을 Service라 하고 MVC 패턴의 Model에 해당된다. Model은 Service뿐만 아니라 DAO, Java Beans도 포함된다.
Model에서 열심히 데이터를 처리하고 client가 원하는 데이터를 얻게 되었다면, client에게 보여줄 화면을 만들어준다. 이를 MVC 패턴의 View라고 하고 JSP에서 담당한다.
해당 설명을 그리므로 보면 다음과 같다.
그렇다고 모든 웹사이트가 model2(MVC)로 만들어지는 것은 아니다.