반응형
- 정적 컨텐츠(정적 파일 딱)
- MVC 와 템플릿 엔진(서버 가공 후 딱)
- API(json 던지기)
정적 컨텐츠
스프링 부트 정적 컨텐츠 기능
- 실행 http://localhost:8080/hello-static.html
- 정적 컨텐츠 이미지
MVC와 템플릿 엔진
MVC: Model, View, Controller
Controller ㅣ 비즈니스 로직,서버 처리
@Controller public class HelloController { @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } }
View | 화면을 그리는데 집중
resources/template/hello-template.html
<html xmlns:th="http://www.thymeleaf.org"> <body> <p th:text="'hello ' + ${name}">hello! empty</p> </body> </html>
MVC, 템플릿 엔진 이미지
API
@ResponseBody 문자 반환
@Controller
public class HelloController {
@GetMapping("hello-string")
@ResponseBody // http 응답 body 에 이 리턴값을 직접 넣어주겠다.
public String helloString(@RequestParam("name") String name) {
return "hello " + name;
}
}
@ResponseBody
를 사용하면 뷰리졸버(viewResolver
)를 사용하지 않음.(=http 응답 body 에 이 리턴값을 직접 넣어주겠다.)- 대신에 HTTP 의 BODY 에 문자 내용을 직접 반환(HTML BODY TAG 를 말하는 것이 아님.)
실행
http://localhost:8080/hello-string?name=spring
- Parameter 정보 보기 단축키 : 윈도우
^
+p
= 맥command
+p
- 자동
;
:ctrl
+shift
+Enter
@ResponseBody 객체 반환
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name, Model model) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@ResponseBody
를 사용하고, 객체를 반환하면 객체가 JSON으로 변환된다.
실행
http://localhost:8080/hello-api?name=spring
@ResponseBody 사용 원리
@ResponseBody
를 사용- HTTP 의 BODY 에 문자 내용을 직접 반환
viewResolver
대신에HttpMessageConvertor
가 동작한다.- 기본 문자 처리:
StringHttpMessageConvertor
- 기본 객체 처리:
MappingJackson2HttpMessageConvertor
- byte 처리 등등 기타 여러
HttpMessageConverter
가 기본으로 등록되어있다.
참고: 클라이언트의 HTTP Accept 헤더와 서버의 컨트롤러 반환 타입 정보 둘을 조합하여,
HttpMessageConverter
가 선책된다.
출처
인프런 스프링 입문 김영한
반응형
'스프링, 자바' 카테고리의 다른 글
jsp 와 쿠키 (0) | 2021.01.19 |
---|---|
jsp 소스 코드의 동작 과정 (0) | 2021.01.19 |
프로젝트 환경 설정 (0) | 2021.01.19 |
[intelly j ] spring 초기 세팅 모음집 (0) | 2021.01.18 |
자바의 스레드 (0) | 2021.01.16 |