티스토리 뷰
(참고 : Spring Boot와 Thymeleaf 기준을 작성된 글입니다)
이전 글(HTTP Request Data)에서 클라이언트가 보낸 요청 값들을 서버 쪽에서 어떻게 조회할 수 있는지 살펴보았다
이렇게 값들을 조회한 후에는 서버쪽에서 해당 로직들을 수행하고 클라이언트에게 응답을 하게 된다
이때 서버쪽에서 어떠한 응답을 어떻게 만드는지 살펴보려고 한다
우선 서버쪽에서 만드는 응답 데이터는 정적 리소스 , 뷰 템플릿, HTTP 메시지와 같이 크게 3가지로 나뉜다
Static Resource(정적 리소스)
웹 브라우저에 정적인 HTML, CSS, JS를 제공할 때 정적 리소스를 사용한다
스프링 부트의 경우 정적 리소스 경로가 설정되어 있는데
src/main/resources/static 경로에 index.html 파일을 생성하고
http://localhost:8080/index.html와 같이 접근하게 되면
해당 파일의 변경 없이 그대로 서비스 된다
View Template(뷰 템플릿)
웹 브라우저에 동적인 HTML을 제공할 때 뷰 템플릿을 사용한다
정적 리소스와 같이 스프링 부트는 기본 뷰 템플릿 경로를 제공한다 (src/main/resource/templates)
해당 경로에 뷰 템플릿을 생성하고 @Controller에서 String을 반환하게 되면 해당 이름을 가지고 있는 뷰 템플릿을
뷰 리졸버가 찾아 동적 HTML을 생성하여 클라이언트에게 응답되는 방식이다
//@Controller
@RequestMapping("/example")
public String responseView() {
return "view";
}
HTTP 메시지
HTTP API를 제공하는 경우 HTML이 아닌 데이터를 전달해야 하기 때문에 HTTP Body에 JSON과 같은 형식으로 데이터를 담아 보낸다
클래스를 @RestController로 붙이거나 메서드에 @ResponseBody를 붙이게 되면 뷰 리졸버가 작동하지 않고 메시지 컨버터가 작동하여
반환 값을 데이터 형식으로 반환하게 된다 (메시지 컨버터의 글)
//@RestController가 있다면 @ResponseBody 생략 가능
//username = kim
public String responseBody(@RequestParam String username) {
return pageNum;
}
// kim 문자열이 반환된다
핵심정리
클라이언트의 요청을 수행하고 응답하는 방법은 크게 3가지로 나뉜다
• 정적 리소스 : 파일의 변경 없이 정적으로 생성된 HTML, CSS, JS가 응답된다
• 뷰 템플릿 : 뷰 리졸버를 통하여 만들어진 뷰 템플릿으로 동적 HTML을 생성하여 응답한다
• HTTP 메시지 : @RestController , @ResponseBody를 통해 메시지 컨버터가 작동하여 해당 데이터 그 자체가 반환된다
개인 학습을 위해 작성되는 글입니다.
제가 잘못 알고 있는 점에 대한 지적 / 더 나은 방향에 대한 댓글을 환영합니다.
참조 링크:
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard
'Spring > Spring MVC' 카테고리의 다른 글
[Spring MVC] Message & Locale (0) | 2021.09.03 |
---|---|
[Spring MVC] PRG (Post/Redirect/Get) 패턴 (0) | 2021.08.31 |
[Spring MVC] HTTP Request Data(HTTP 요청 조회) (0) | 2021.08.30 |
[Spring MVC] HTTP Message Converters (HTTP 메시지 컨버터) (0) | 2021.08.28 |
[Spring MVC] Argument Resolver와 ReturnValue Handler (0) | 2021.08.27 |
- Total
- Today
- Yesterday
- uri
- ResponseStatusExeceptionResolver
- spring
- 제이쿼리 위치탐색선택자
- 제이쿼리란
- 제이쿼리 기본 선택자
- DefaultHandlerExceptionResolver
- Spring Container
- OOP
- cookie
- 쿠키
- application/x-www-form-urlencoded
- 캐시
- 세션
- DTO와 VO의 차이
- jQuery 직접 선택자
- Spring API Error
- http
- 제이쿼리 직접 선택자
- 맨코
- Spring TypeConverter
- Spring MVC
- 제이쿼리 인접 관계 선택자
- maenco
- Session
- Cache
- 제이쿼리 탐색선택자
- @ExceptionHandlere
- ExceptionHandlerExceptionResolver
- @ResponseStatus
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |