티스토리 뷰
0. Controller의 반환 값
:: Spring에 위임되어 Controller에서 처리한 모든 응답은 Front Controller에게 반환 타입을 고려해 반환
:: Front Controller(DispatcherServlet) 은 앞선 Controller 가 반환한 타입에 따라 View 생성
1. 반환 값 분류 기준
:: HandlerAdapter의 응답으로 String 또는 ModelAndView 또는 Object 중 하나를 받음
:: @ResponseBody의 여부에 따라 X :: ViewResolver 혹은 O :: MessageConverter 실행
1.1 웹 페이지를 반환(HTML)
controller의 반환 타입 | String | ModelAndView |
정적 페이지(ViewTemplate) | 동적 페이지(ViewTemplate + Model) | |
ViewResolver의 탐색 값 | ViewTemplate 명칭의 HTML, JSP, Thymeleaf | |
ViewResolver의 반환 값 | 미존재 시 404 | + Model => 렌더링 |
1.2 데이터를 반환(JSON)
=> @Controller + @ReponseBoby = @RestController
// @Controller + @ReponseBoby = @RestController
@RestController
public class IndexController {
@RequestMapping(method = RequestMethod.GET, value = "/")
public String index() {
return "index.html";
}
}
controller의 반환 타입 | Object |
@ResponseBody 적용 | -> Controller 메서드가 반환 객체를 JSON으로 변환 -> @Controller 메서드에서의 반환 값을 ViewTemplate가 아닌 "값 그 자체"로 인식 |
HttpMessageConverter | -> 객체에 따라 JSON 또는 XML로 데이터 변환 |
1.2.1 JSON 반환을 위한 HttpMessageConverter 구현체
:: HttpMessageConverter는 XmlHttpRequest(XHR)의 응답
- XmlHttpRequest(XHR)
:: 웹 브라우저가 웹 서버와 비동기적으로 통신하기 위해 제공하는 API
:: 웹 페이지 전체를 새로고침하지 않고도 서버로부터 데이터를 주고받거나, 특정 부분만 업데이트 가능
:: HTTP 메서드 지원 -> 서버와의 통신 지원
=> 위의 웹 서버와의 통신을 위한 API인 XHR을 통해 JSON<->Object 변환
- 응답
:: 직렬화(Serialization)
:: Java 객체 → JSON 변환(Java 객체 → HTTP Response Body) - 요청
:: 역직렬화(Deserialization)
:: JSON → Java 객체 변환 (HTTP Request Body → Java 객체)
참조
ASAC 수업자료
인프런 - 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 강의 | 김영한 - 인프런
김영한 | , 원리를 알아야 핵심이 보인다!김영한의 스프링 MVC 기본편 👨💻 📌 수강 전 확인해주세요! 본 강의는 자바 스프링 완전 정복 시리즈의 네 번째 강의입니다. 우아한형제들 최연소
www.inflearn.com
'정리용 > SpringBoot' 카테고리의 다른 글
[Spring] 2-2-2. Spring MVC - Servlet 객체 (0) | 2025.02.07 |
---|---|
[Spring] 2-2. Spring MVC - 구조와 동작 (0) | 2025.02.07 |
[Spring] 2-1. Spring MVC - HandlerMapping (0) | 2025.02.07 |
[Spring] 2. Spring MVC (0) | 2025.02.07 |
[Spring] 1. 스프링 부트 기본 설정 (0) | 2025.02.07 |
- Total
- Today
- Yesterday
- memo
- ASAC
- asac#asac7기
- useEffect
- useLayoutEffect
- useContext
- useState
- useRef
- react
- Nginx
- useCallback
- ssh
- git
- useMemo
- acas#acas7기
- asac7
- useReducer
- asac7기
- acac
- asac7#asac
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |