[Spring]스프링 웹 개발 기초

김피자·2022년 12월 24일
0

Spring

목록 보기
4/30

1. 정적 컨텐츠

: 서버에서 하는 것 없이 파일을 그대로 웹브라우저에 띄우는 것

내장 톰캣 서버가 hello-static.html이라는 요청이 왔다고 스프링 컨테이너에 넘김
1. spring은 먼저 우선순위가 높은 controller에서 hello-static관련 컨트롤러가 있는지 확인
2. 없으면 resources:static/hello-static.html을 찾아서 반환

2. MVC와 템플릿 엔진

MVC : Model, View, Controller

controller

@Controller
public class HelloController{
	
    @GetMapping("hello-mvc")
    public String helloMvc(@RequestParam("name") String name, Model model){
    	model.addAttribure("nama", name);
        return "hello-template";
    }
}

view

<html xmlns:th="http://www.thymeleaf.org">
	<body>
  		<p th:text="'hello'+ ${name}"> hello! empty</p>
	</body>
</html>

3. API

@GetMapping("hello-string")
    @ResponseBody
    public String helloString(@RequestParam("name") String name){
        //http 응답 body부분에 아래 내용을 직접 넣어주겠다!
        return "hello "+ name;
    }

이전의 템플릿 엔진은 view라는 템플릿을 가지고 조작하는 방식이고,
이 방식의 경우는 데이터를 그대로 내려줌


    @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;
        }
    }


json으로 나오는 것을 확인할 수 있다 (key : value 로 이루어진 구조)

Spring은 @ResponseBody라는 어노테이션을 보고 HTTP의 BODY에 문자 내용을 직접 반환
(viewResolver 대신에 HttpMessageConverter가 동작)

그런데, 문자가 아니고 객체 형태일 경우,
'Json방식으로 데이터를 만들어 http에 반환하겠다!'가 기본 정책

StringHttpMessageConverter : 기본 문자처리
MappingJackson2HttpMessageConverter : 기본객체 처리

profile
제로부터시작하는코딩생활

0개의 댓글