JSP | MVC2 패턴

2022. 12. 3. 16:56·JSP

MVC2 패턴 ( Model View Controller 2 )

MVC 패턴은 디자인 패턴 중 하나로,

디자인 패턴이란 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것을 말한다.

MVC 패턴은 Model, View, Controller의 줄임말로써, 사용자와 상호작용하는 S/W를 디자인함에 있어 세가지 요소로 쪼개어 하는 것을 가리킨다.

출처 : https://velog.io/@gillog/a-j5c0h49n

 

Model

애플리케이션의 정보, 데이터를 나타냅니다. 데이터베이스, 처음의 정의하는 상수, 초기화값, 변수 등을 뜻합니다. 또한 이러한 DATA, 정보들의 가공을 책임지는 컴포넌트를 말합니다.

출처 : https://m.blog.naver.com/jhc9639/220967034588

View

화면, jsp (여기에는 자바 코드가 있으면 안됨 - JSTL 문법)

Controller

화면에서의 요청이 굉장히 많을것인데  (ex. 회원가입,주문,예매,결제 등) 

이 요청들을 하나로 전부 묶어서 각 주제에 맞추어 구분시켜 위치시키는 것

하나의 큰 주제별로 묶임 ex) [회원, 가입, 탈퇴, 수정 내역] - 하나의 컨트롤러

DAO도 마찬가지다.

Controller는 JSP로 모을수 없음 , SERVLET으로 모음! (URL주소를 분기시킬 수 있음)

 

URL-Pattern

1. 디렉토리 패턴 : 디렉토리 형태로 서버의 해당 컴포넌트를 찾아서 실행하는 구조입니다 .
    ex ) http://localhost:8181/cr/Hello ➡ /Hello 서블릿
           http://localhost:8181/cr/World ➡ /World 서블릿


2. 확장자 패턴 : 확장자 형태로 서버의 해당 컴포넌트를 찾아서 실행하는 구조입니다 .
    ex ) http://localhost:8181/cr/Hello.do ➡ *. do 서블릿
           http://localhost:8181/cr/World.do ➡ *. do 서블릿

 

.board로 끝나는 것은 다 여기로 모은다

@WebServlet("*.board")

MVC2 구조

- 모델 2 구조는 웹 브라우저의 요청을 하나의 서블릿이 받으며 서블릿은 그 요청을 알맞게 처리한 후,

   그 결과를 보여줄 JSP 페이지로 포워딩 합니다
- 이 구조의 특징은 웹 브라우저의 모든 요청을 단일 진입점 , 즉 하나의 서블릿에서 처리한다는 점입니다.

   하나의 서블릿이 모든 요청을 받기 때문에 서블릿은 웹 브라우저의 요청을 구분하는 방법이 필요합니다
- MVC 모델 2 구조의 핵심은 

모델 ( Model )은 비즈니스와 관련된 로직만 처리하면 되며

사용자에게 보일 화면이나 요청의 흐름 제어에 대해서는 전혀 처리 X

뷰 ( View ) 는 사용자에게 알맞은 화면을 보여주는 역할만 수행할 뿐 ,

비즈니스 로직이나 요청 흐름 제어 등을 처리하지 않습니다.

컨트롤러 ( Controller )는 사용자의 요청에 대해서 알맞은 모델을 사용하고 사용자에게 보여줄 뷰를 선택합니다
- MVC 모델 2 구조를 사용함으로써 코드의 유지보수가 쉬워지며 어플리케이션을 쉽게 확장할 수 있습니다.

 

MVC2 의 컨트롤러 : 서블릿

모델 2 구조에서 서블릿은 MVC 패턴의 컨트롤러 역할을 합니다. 서블릿은 웹 브라우저의 요청과 웹 어플리케이션의 전체적인 흐름을 제어합니다

- 컨트롤러의 흐름 제어 처리 로직

1. 웹 브라우저가 전송한 HTTP 요청을 받아 요청방식에 맞게 doGet (), doPost 를 호출함
2. 웹 브라우저가 어떤 기능을 요청했는지 분석함
3. 모델을 사용하여 요청한 기능을 수행
4. 모델로부터 전달받은 결과물을 알맞게 가공한 후 , request 나 session 의 setAttribute () 메서드를 이용하여 결과값을 속성에 저장 . 이렇게 저장한 결과값은 뷰인 JSP 에서 사용함
5. 웹 브라우저에 결과를 전송할 JSP 페이지를 선택한 후 , 해당 JSP 로 포워딩 혹은 리다이렉트 함

'JSP' 카테고리의 다른 글

DAO, DTO, VO 란? 간단한 개념 정리  (0) 2022.12.06
JSP | 회원가입, 로그인 수업(1)  (0) 2022.12.05
JSP | EL, JSTL  (0) 2022.12.03
JSP | JSP 태그  (0) 2022.12.02
JSP | Html( Hyper Text Markup Language )  (0) 2022.11.29
'JSP' 카테고리의 다른 글
  • DAO, DTO, VO 란? 간단한 개념 정리
  • JSP | 회원가입, 로그인 수업(1)
  • JSP | EL, JSTL
  • JSP | JSP 태그
개발 공부
개발 공부
  • 개발 공부
    개발 공부
    개발 공부
  • 전체
    오늘
    어제
    • 전체보기 (163)
      • 프로젝트 (1)
      • JavaScript (46)
      • Node.js (3)
      • Next.js (5)
      • React (17)
      • NoSQL (0)
      • HTML,CSS (3)
      • CS (6)
      • Java (35)
      • Spring (6)
        • Spring의 정석 (1)
      • Spring boot (1)
      • MySQL (1)
      • 리눅스 (16)
      • JSP (9)
      • AWS (0)
      • git (2)
      • 알고리즘 (1)
      • ect (7)
      • Project (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오블완
    자바
    자바의 정석
    티스토리챌린지
    Java의 정석
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
개발 공부
JSP | MVC2 패턴
상단으로

티스토리툴바