반응형
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 |