본문 바로가기
WORKS/Java + JSP + Spring

[JSP] JSP : model1 모델1, model2모델 2 / MVC 패턴 ?

by Jelly 젤리 2022. 3. 13.

개념

모델1

JSP에서 화면을 보여주고 요청을 하게 되면 JSP페이지에서 직접 model에 접근하여 처리한다.

데이터베이스와 연동하는 JSP 페이지를 만들 때 디자인 부분과 데이터베이스가 연동되는 로직 부분이 모두 같은 페이지에 코딩을 하는 방식인 것.

 


모델2

모델 1이 모든 처리를 JSP에서 하는 것과 달리

JSP페이지 + 서블릿 + 로직 클래스 로 구성이 나누어지면서 이것들이 동작하여 브라우저의 요청을 처리한다.


MVC Pattern?

Model - View - Controller의 개념

Model 2 구조는 MVC 패턴을 웹 개발에 도입한 구조이며

Model 2와 MVC패턴은 형태를 동일하게 가져간다.

 

- 웹 브라우저의 요청을 서블릿이 받고 이후 알맞는 로직 클래스에 의해서 처리후 JSP 페이지로 포워딩 하는 과정을 거친다.

- 디자인 부분과 로직 부분을 나누어서 개발하기 때문에 디자이너는 디자인 부분만, 프로그래머는 로직 부분만 개발에 열중할 수 있다는 장점이 있다. 

Model : 데이터베이스와 연동하는 부분 등의 로직 - JavaBean, JavaDAO

View : 화면 출력 - JSP

Controller : Model과 View를 적절하게 연결시켜주는 역할 - Servlet

- Model과 View를 독립적으로 코딩하기 때문에 Controller를 만들어서 Model과 View 사이에 개입하여 서로 연동하는 역할을 해주어야 한다.

- 일이 많아지면 많아질 수록 controller가 비대해지는 것을 방지하기 위해서 컨트롤러를 보통 세분화한다.

 


구성요소

Controller:

- 요청을 받아서 요청에 해당하는 Model과 View를 호출하는 역할만 수행.

- View처럼 JSP페이지를 구현할 수 없다.

- 보여지는 페이지가 아닌 연결시켜주는 통로역할을 한다.

- 중간에서 연결해주는 역할이며 서블릿으로 만든다.

 

View:

- 화면 출력 부분에 해당.

- JSP페이지로 구성.

- 절대 데이터페이스 연동과 같은 비즈니스 로직을 구현하지 않음

- Controller를 통해서 Model에 처리한 결과를 화면에 출력할 때 사용

 

Model:

- MVC에서 실제로 비즈니스 로직을 처리하는 부분.

           ex> 게시판 만드는 과정에서 글 등록, 글 삭제, 수정 등은 모두 DB와 연동되어 처리된다.

- 처리가 완료되면 컨트롤러를 통해서 뷰로 전달되어 출력.

- JavaBean (VO, DAO 등 - 데이터 관련) 클래스 파일 - getters&setters가 있는 파일

- 실제로 Model 클래스의 비즈니스 로직을 가져다가 쓰는 곳은 Controller와 Model 사이에 존재하는 Command(Action) 클래스이다.

 

728x90

댓글