- 모델 1 구조
모델 1 구조는 JSP를 이용한 단순한 모델이다. 웹 브라우저의 요청을 JSP가 직접 처리한다. 웹 브라우저의 요청을 받은 JSP는 자바빈이나 서비스 클래스를 사용해서 웹 브라이저가 요청한 작업을 처리하고 그 결과를 클라이언트에 출력한다.
- 모델 2 구조
모델 2 구조는 모델 1구조와 달리 웹 브라우저의 요청을 하나의 서블릿이 받는다. 서블릿은 웹 브라우저의 요청을 알맞게 처리한 후 그 결과를 보여줄 JSP 페이지로 포워딩한다. 포워딩을 통해 요청 흐름을 받은 JSP 페이지는 결과 화면을 클라이언트에 전송한다. 이 과정에서 서블릿이 로직을 처리한다.
웹 브라우저의 모든 요청을 단일 진입점, 즉 하나의 서블릿에서 처리한다는 점이 특징이고, 하나의 서블릿이 웹 브라우저의 모든 요청을 받기 때문에, 서블릿은 웹 브라우저의 요청을 구분하는 방법이 필요하다. 서블릿은 웹 브라우저의 요청을 처리한 후 웹 브라우저에 보이게 될 응답 화면을 생성할 JSP를 선택한다.
- MVC 패턴
MVC(Model - View - Controller; 모델 ㅡ 뷰 ㅡ 컨트롤러) 패턴은 웹 개발자라면 반드시 알아야하는 패턴이다.
- 모델 : 비즈니스 영역의 로직을 처리한다.
- 뷰 : 비즈니스 영역에 대한 프레젠테이션 뷰를 담당한다.
- 컨트롤러 : 사용자의 입력 처리와 흐름 제어를 담당한다.
사용자는 원하는 기능을 처리하기 위한 모든 요청을 컨트롤러에 보낸다. 모델은 비즈니스와 관련된 기능을 제공하는데, 컨트롤러는 이 모델을 이용해서 사용자의 요청을 처리한다. 모델을 사용하여 알맞은 비즈니스 로직을 수행한 후 컨트롤러는 사용자에게 보여줄 뷰를 선택한다. 선택된 뷰는 사용자에게 알맞은 결과 화면을 보여준다. 뷰가 사용자에게 결과 화면을 보여줄 때에는 데이터가 필요한데, 이 데이터는 컨트롤러를 통해서 전달 받는다.
'코딩 > JSP' 카테고리의 다른 글
[JSP] JDBC 프로그래밍의 코딩 스타일 (0) | 2017.02.13 |
---|---|
[JSP] <fmt:formatNumber>, <fmt:parseNumber>, <fmt:formatDate>, <fmt:parseDate> 태그 속성 (0) | 2017.02.12 |
[JSP] <fmt:bundle>, <fmt:setBundle>, <fmt:message> 태그 속성 (0) | 2017.02.12 |
[JSP] 국제화 태그 (0) | 2017.02.12 |
[JSP] <c:url>, <c:redirect>, <c:out> 태그 속성 (0) | 2017.02.12 |