JSP&Servlet

JSP/ MVC모델

야생늑대 2022. 4. 29. 19:43
반응형

JSP(Java Server Pages) 

  • 서블릿의 단점을 보완하고자 만든 서블릿 기반의 스크립트 기술.
  • 서블릿과 동일한 처리 구조를 가진다.(서블릿에 대한 이해도가 필요하다)
  • JSP파일은 실행 시 서블릿으로 변환되어 실행된다. 하지만 변환되는 과정은 단 한번만 일어나므로 사용자가 몰려도 처리속도는 거의 떨어지지 않는다. (코딩 내용이 변경되었다면 다시 변환과정을 거친다.)
  • 서블릿은 자바에 대한 깊은 지식이 필요하며 화면 인터페이스 구현에 너무 많은 코드를 필요로 하여 비효율적인   측면이 있다. 
  • 서블릿을 작성하지 않고도 간편하게 웹프로그래밍을 구현하게 만든 기술이다.
  • Model2에서 사용자용 화면인 뷰(view) 구현에 사용한다.
  • Java를 기반으로 만들어졌기 때문에 자바 언어의 특징을 그대로 가지고 있다.
  • 키워드가 태그화 되어 서블릿에 비해 배우기 쉽다.
  • 자바 코드는 <% %> 태그 안에 작성해야한다.
  • HTML 코드안에 Java 코드가 있기 때문에 작성하기 쉽다.
  • Tomcat(WAS)이 이미 만들어 놓은 객체를 사용한다.

 

 

MVC 모델

Model1

  • 코드블록이 흩어지고 복잡해지는것을 간편하게 만들기 위해 만들어진 Model1
  • 원하는 코드블록을 찾기 쉽도록 코드블록을 최소화하자.
  • 입력코드는 위쪽에 한번에 몰아놓고  밑쪽에는 출력코드만 작성
  • 출력을 가볍게 만들기 위한 코드작성 방식

※ model1 전의 출력코드에는 출력을 제어하는 코드가 작성되었다.


  •  Model1 에서는 입력코드에는 입력과 제어를 위한 코드를 작성하고 출력코드에는 출력을위한 코드만 사용한다.  
  • 이렇게 함으로써 코드를 양분화시킬 수 있다.   (입력에는 자바코드,  출력에는 HTML 코드)
  •  입력코드에서 나온 결과를 출력코드에 사용할 수 있게 이어주는 역할을 하는 출력데이터를  Model(모델) 이라고 한다.
  •  Model1 = MVC 코드를 M을 이용해 V와 C로 나눠서 만드는 방식

 

위 그림 처럼 분리되어 작성해서 코드를 좀 더 편하게 유지보수할 수 있고 출력을 관리하는 사람또한 

굉장히 편하게 화면을 구성할 수 있다. (자바코드의 제어가 없으므로)

 

Model2

Model1 은 컨트롤러와 뷰가 물리적으로 분리되지 않은 방식

Model2 는 컨트롤러와 뷰가 물리적으로 분리된 방식

 

View 페이지인   사용자의 요청이있을 때 JSP파일만 서블릿으로 만들어져 실행속도 개선

 

컨트롤러에서 뷰로 Dispatcher를 이용해 포워딩

Dispatcher 저장소 역할

forward  이어주는 역할

 

Controller

View

 

컨트롤러에서 실행 시  Controller에서 데이터를 만들어야 View에서 보여줄 수 있기때문

View는 보여주기 위한 껍데기

 

Model 비즈니스 로직을 처리하는 모든 것
(데이터 처리를 수행하는 일)
View 클라이언트에 출력되는 화면, 요청결과의 출력이나 컨트롤러에 요청을 보내는 용도
Controller MVC패턴(Model2)의 모든 흐름 제어를 맡는다.
요청이 들어오면 이 요청을 처리하기 위한 모델을 사용하여 처리한다.
모델로부터 처리결과를  받아서 request객체에 저장하여 forward나 redirect 한다.

Model1에 비해 코드가 복잡하지 않고 기능에 따라 물리적으로 분리되어 있기 때문에 분업이 용이해서 유지 보수가 더 편해졌다.

하지만 구조가 복잡하고 Java에 대한 깊은 이해도가 필요하여 습득이 어려우며 작업량이 많다는 단점이 있다.

 

반응형

'JSP&Servlet' 카테고리의 다른 글

기초  (0) 2022.05.29
동기식&비동기식 그리고 ajax  (0) 2022.05.11
<form>태그의 데이터 전송  (0) 2022.05.10
Jsp/Servlet - 상대경로, 절대경로  (0) 2022.05.09
서블릿/JSP 정리01  (0) 2022.05.05