본문 바로가기
JSP

JSP MVC

by 요리하다그만둠 2022. 7. 21.

JSP 웹 어플리케이션의 구조는 크게  2가지로 나뉩니다.

  • 모델 1 구조
  • 모델 2구조

JSP에서 모든 로직과 출력을 처리하느냐 아니면 JSP에서는 출력만 처리하느냐에 따라 모델 1구조와 모델2구조로 나뉩니다.

 

모델 1구조

모델 1구조는 JSP를 이용한 단순한 모델입니다. 앞에 계속 사용한 JSP페이지가 모델 1구조를 사용하고 있습니다.

보통처음 JSP를 배울 때 사용하는 구조가 모델 1구조인데, 아래 사진은 그처리 구도입니다.

모델1구조의 요청 / 응답 처리 방식

모델 1 구조는 위에 사진과 같이 웹 브라우저의 요청을 JSP가 직접 처리합니다.

웹 브라우저의 요청을 받은 JSP는 자바빈이나 서비스 클래스를 사용해서 웹 브라우저가 요청한 작업을 처리하고 그 결과를 클리이언트에 출력합니다.

 

 

모델 2 구조

모델 2 구조는 모델 1 구조와 달리 웹 브라우저의 요청을 하나의 서블릿이 받습니다. 서블릿은 웹 브라우저의 요청을 알맞게 처리한 후 그 결과를 보여줄 JSP 페이지로 포워딩합니다. 포워딩을 통해 요청 흐름을 받은 JSP 페이지는 결과 화면을 클라이언트에 전송합니다.

이 과정에서 서블릿이 로직을처리합니다 아래의 사진이 모델 2 구조의 요청 처리 순서입니다.

모델 2 구조의 요청 / 응답 처리 방식

모델 2 구조의 특징은 웹 브라우저의 모든 요청을 단일 진입점, 즉 하나의 서블릿에서 처리한다는 점입니다. 하나의 서블릿이 웹 브라우저의 모든 요청을 받기 때문에, 서블릿은 웹 브라우저의 요청을 구 분하는 방법이 필요합니다.

서블릿은 웹 브라우저의 요청을 처리한 후 웹 브라우저에 보이게 될 응답 화면을 생성할 JSP를 선택합니다.

모델 2 구조의 이러한 특징 때문에, MVC(Model - View _controller)패턴을 이용해서 웹 어플리케이션을 구현할 때 모델 2구조를 사용합니다.

 

MVC 패턴

MVC(Model - View _controller)패턴은 스윙과 같은 UI컴포턴트뿐만 아니라 웹 어플리케이션 개발 영역에서도 보편적으로 사영되고 있습니다.

  • 모델 : 비즈니스 영역의 로직을 처리한다.
  • 뷰 : 비즈니스 영역에 대한 프레젠테이션 뷰 (즉 사용자가 보게될 화면)을 담당합니다.
  • 컨트롤러 : 사용자의 입력 처리화 흐름 제어를 담당합니다.

 

사용자가 원하는 기능을 처리하기 위한 모든 요청을 콘트롤러에 보냅니다. 모델은 비즈니스와 과련된 기능을 제공하는데, 컨트롤러는 이 모델을 이용해서 사용자의 요청을 처리합니다.

모델을 사용하여 알맞은 비즈니스 로직을 수행한 후 컨트롤러는 사용자에게 보여줄 뷰를 선택합니다.

선택된 뷰는 사용자에게 알맞은 결과 화면을 보여줍니다.

뷰가 사용자에게 결과 화면을 보여줄 때에는 데이터가 필요한데 이 데이터는 컨트롤러를 통해서 절달 받습니다.

 

MVC 패턴의 핵심

  • 비지느시 로직을 처리하는 모델과 결과 화면을 보여주는 뷰를 분리합니다.
  • 어플리케이션의 흐름 제어나 사용자의 처리 요청은 컨트롤러에 집중됩니다.

MVC 의 컨트롤러 : 서블릿

MVC의 모델 : 로직 수행 클래스

'JSP' 카테고리의 다른 글

JSP 라이프 싸이클(life cycle : 생명주기)  (0) 2022.07.22
JSP 필터  (0) 2022.07.21
JSP 서블릿(어노테이션으로 매핑)  (0) 2022.07.20
JSP 서블릿  (0) 2022.07.20
JSP JDBC 드라이버  (0) 2022.07.18