JSP 웹앱 구조는 크게 모델 1 구조와 모델 2 구조로 나뉜다. JSP에서 모든 로직과 출력을 처리하느냐 아니면 출력만 처리하느냐에 따라서 모델 1, 모델 2 구조로 나뉜다.
모델 2 구조
웹브라우저의 요청을 하나의 서블릿이 받는ㅇ다. 서블릿은 웹브라우저의 요청을 알맞게 처리한 후 그 결과를 보여줄 JSP페이지로 포워딩하낟. 포워딩을 통해 요청 흐름을 받은 JSP페이지는 결과 화면을 클라이언트에 전송한다.
이 구조의 특징은 모든 요청을
단일 진입점 = 하나의 서블릿에서 처리한다는 점
하나의 서블릿이 웹 브라우저의 모든 요청을 받기 때문에 서블릿은 웹브라우저의 요청을 구분하는 방법이 필요하다.
웹브라우저의 요청을 처리한 후 웹브라우저에 보이게 될 응답 화면을 생성한 JSP를 선택한다.
모델 : 비지니스 영역의 로직을 처리한다.
뷰 : 비지니스 영역에 대한 프레젠테이션 뷰를 담당
컨트롤러 : 사용자의 입력 처리와 흐름 제어르 ㄹ담당한다.
핵심은
비지니스 로직을 처리하는 모델과 결과 화면을 보여주는 뷰를 분리한다.
앱의 흐름 제어나 사용자의 처리 요청은 컨트롤러에 집중된다.
컨트롤러는 사용자의 요청에 대해서 알맞은 모델을 사용하고, 사용자에게 보여줄 뷰를 선택하면 된다.
비지니스 로직에는 포함되지 않지만 전체 웹 앱에 일괄적으로 적용되는 기능을 컨트롤러에서 처리하게 된다.
MVC 패턴과 모델2 구조의 매핑
컨트롤러 = 서블릿
모델 = 로직 처리 클래스, 자바 빈(JSP에서 재사용 하기위한 클래스)
뷰 = JSP
web.xml에 URL과 서블릿 간에 매핑을 해줘야 한다.
₩
'개발 > Spring' 카테고리의 다른 글
자바 HashSet (0) | 2021.04.12 |
---|---|
필터 (0) | 2021.04.11 |
서블릿이란 (0) | 2021.04.11 |
데이터베이스 (0) | 2021.04.11 |
자바 ConcurrentHashmap (0) | 2021.04.11 |