728x90
정적 컨텐츠
그냥 파일 하나를 그대로 화면에 띄우는 것
resources - static 안에 있는 html 파일을 바로 화면에 출력
MVC와 템플릿 엔진
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model){
model.addAttribute("name",name);
return "hello-template";
}
쿼리스트링으로 값을 담아서 넘겨주면 그 값이 name에 담겨서 넘어가게 됨
API
@GetMapping("hello-string")
//http의 body에 내가 아래의 리턴 값을 넣어주겠다는 것
@ResponseBody
public String helloString(@RequestParam("name") String name){
return "hello "+name; //"hello spring"
}
@ResponseBody 를 사용하면 뷰 리졸버( viewResolver )를 사용하지 않음
대신에 HTTP의 BODY에 문자 내용을 직접 반환(HTML BODY TAG를 말하는 것이 아님)
url에 http://localhost:9090/hello-string?name=spring!!! 이렇게 넣어주면 그냥 바로 그 값을 띄움
----중요한건 아래부터-----
@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;
}
}
http://localhost:9090/hello-api?name=spring!!!
위와 같이 url을 입력하면
{"name":"spring!!!"}
이런 식으로 화면이 나타나는데 이를 JSON 방식이라고 한다.
JSON은 키 : 값 형태로 되어 있으며, 여기서 키는 name, 값은 url에 넣은 spring!!!이 되는 것
@ResponseBody 원리
리스폰스바디에서 문자가오면 그냥 그대로 화면에 띄우면 되지만, 객체가 오게되면 그냥 Json 방식으로 데이터를 만들어서 http 응답에 반환하도록 하는 것이 기본 원칙으로 되어있음
728x90
'스프링' 카테고리의 다른 글
스프링 DB 접근 기술 (0) | 2022.05.20 |
---|---|
회원 관리 예제 - 웹 MVC 개발 (0) | 2022.05.19 |
스프링과 빈의 의존관계 (0) | 2022.05.19 |
회원 관리 예제 (0) | 2022.05.18 |
프로젝트 환경 설정 (0) | 2022.05.17 |