728x90
Servlet으로 만들어진 HTML
- 서블릿과 자바만으로 HTML 생성
- → 이 방식은 동적인 HTML 생성이 불편
- 자바코드로 HTML을 생성하는 것보다 HTML에 동적으로 변경해야 하는 부분만 자바 코드를 넣는 것이 더 효율적
- → 템플릿 엔진 사용
- 템플릿 엔진으로 JSP, Thymeleaf 등이 있음
JSP로 만들어진 HTML
- JSP 안에서의 requst와 response는 그냥 사용이 가능
- 객체명을 request, response로 사용해야함
- Java 코드는 <% ~ %> 안에 넣어 주어야 함
- Java 코드 출력은 <%= ~ %>안에 넣어 주어야 함
- 실행할 때 .jsp까지 경로에 작성해 주어야 함
MVC 패턴
- 하나의 서블릿이나 JSP에서 뷰와 로직을 모두 처리하는 것은 하나의 곳에서 너무 많은 역할을 하고 유지보수가 어려워짐
- 뷰와 로직의 변경 라이프 사이클이 다름
- 뷰와 로직의 변경 시점은 다를 경우가 많기 때문에 하나의 파일에서 계속 변경을 해주어야 함
- 뷰와 로직을 따로 개발하는 것이 좋음
- → MVC 패턴
- MVC 패턴은 Model, View, Controller 로 분리하여 서로의 역할을 나눈 패턴을 말함
- 컨트롤러
- HTTP 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행
- 뷰에 전달할 결과 데이터를 조회 하여 모델에 담음
- 모델
- 뷰에 출력할 데이터를 담음
- 뷰는 비즈니스 로직이나 데이터 접근을 몰라도 됨
- 화면 렌더링 하는 일에 집중
- 뷰
- 모델에 담겨있는 데이터를 사용해서 화면 그리는 일만 함
- HTML 생성하는 부분을 의미 함
- 컨트롤러
- 모델은 HttpServletRequest 객체를 사용
- dispatcher.forward()
- 다른 서블릿이나 JSP로 이동할 수 있으며 서버 내부에서 다시 호출이 발생하게 됨
- WEB-INF 경로 안에 JSP가 있으면 직접 JSP를 호출할 수 없고 컨트롤러를 통해 JSP를 호출해야 함
- redirect
- 클라이언트에 응답이 갔다가 다시 클라이언트가 redirect 경로로 다시 요청하여 클라이언트가 인지 할 수 있음
- forward
- 서버 내부에서 다시 호출하기 때문에 클라이언트가 인지할 수 없음
- request 객체를 통해 뷰에 모델을 전달할 수 있음
- ${} 표현식을 이용하면 편하게 데이터를 조회할 수 있음
- 단점
- 포워드의 중복
- viewpath의 공통 경로 중복
- 사용하지 않는 코드 존재
- ex) response
- 공통 처리 어려움
출처 : https://www.inflearn.com/course/스프링-mvc-1
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의
웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., -
www.inflearn.com
'BackEnd 학습 > Spring Framework' 카테고리의 다른 글
| Spring(스프링) - 스프링MVC 구조이해 (0) | 2023.06.16 |
|---|---|
| Spirng(스프링) - MVC 프레임워크 만들기 (0) | 2023.06.13 |
| Spring(스프링) - 서블릿 (0) | 2023.05.31 |
| Spring(스프링) - 웹 애플리케이션 이해 (0) | 2023.05.16 |
| Spring(스프링) -빈 스코프 (0) | 2023.05.01 |