1. 정적 컨텐츠

localhost:8080/hello-static.html 입력
1. hello-static 컨트롤러 존재 X
2. 컨트롤러가 없으므로 resources:static/hello-static.html 전송
2.MVC와 템플릿 엔진
MVC → Model, View, Controller
※요즘은 Controller와 View를 분류하는것이 기본이다.
Controller는 비즈니스 로직, 서버 관련
View는 화면과 관련있는일
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
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>

localhost:8080/hello-mvc 입력
→ hello-mvc 컨트롤러 존재
→ hello-mvc 컨트롤러 return hello-template
viewResolver가 templates/hello-templates.html 를 변환후 전달 (정적 → 변환 X)


@RequestParam("name") → 입력값 필요
localhost:8080/hello-mvc?name=JAMES
3.API
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name){
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;
}
}


localhost:8080/hello-api 입력
@ResponseBody 없을경우 → viewResolver에게 전송
HTTP의 BODY에 문자 내용을 직접 반환
viewResolver 대신에 HttpMessageConverter 가 동작
기본 문자처리: StringHttpMessageConverter
기본 객체처리: MappingJackson2HttpMessageConverter
요약
정적컨텐츠 : 파일을 그냥 내려준다
MVC와 템플릿 엔진 : 템플릿 엔진을 model view controller 방식으로 나누어 렌더링이된 html을 전달
API : 객체를 반환(json 스타일로 반환)
'Java , Spring > Spring' 카테고리의 다른 글
컴포넌트 스캔 (0) | 2023.03.29 |
---|---|
싱글톤 컨테이너 (0) | 2023.03.23 |
스프링 컨테이너와 스프링 빈 (1) | 2023.03.22 |
Spring Boot (2) Welcome page 만들기 (1) | 2023.01.30 |
Spring Boot (1) 스프링 부트 시작하기 (0) | 2023.01.30 |
댓글