본문 바로가기

스프링

스프링 웹 개발 기초

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