Skip to content

2022 01 27

Crow edited this page Jan 28, 2022 · 5 revisions

other

ResponseEntity 타입

Web을 다루다 보면 HTTP 프로토콜 헤더를 다루는 경우도 종종 있음
스프링 MVC의 사상은 HttpServletRequest(요청)나 HttpServletResponse(응답)을 직접 핸들링 하지 않아도
이런 작업이 가능하도록 작성되었기 때문에 이러한 처리를 위해 ResponseEntity를 통해서 원하는 헤더 정보나 데이터를 전달할수있음
ResponseEntity는 HttpHeaders 객체를 같이 전달할 수 있고, 이를 통해서 원하는 HTTP 헤더 메시지를 가공하는 것이 가능
ex07()의 경우 브라우저에는 JSON 타입이라는 헤더 메시지와 200 OK라는 상태 코드를 전송함

SampleController에 ex07() 메서드 추가

07()메서드의 리턴 타입은 ResponseEntity로 한다 log를 기록하고 String형 변수 msg를 만듬 그리고 값으로 "{"name": "크로우"}"를 줌
\" 이부분이 잘 이해 않가서 알아보니 JSON을 이용할때 특정한 문자를 표현하기 위해서 만든 이스케이프 문자열임
통으로 보면"{"name": "크로우"}" Java의 문자열 형식인 앞뒤 큰따옴표를 제거하면 실제적으로 서버에 보낸 문자는 {"name": "크로우"}이며
JSON은 {"name": "Crow"}이런 형식을 사용해야 하는대 "(큰따옴표)를 표현할 방법이\"
그리고 HttpHeaders를 사용해야 하는대 HttpHeaders header = * 형식이 아닌 org.springframework.http.HttpHeaders header = *이런 형식을 사용해야함 이유는 원래 이런지는 모르겠는대
org.springframework.http.HttpHeaders가 import되지 않음 이게 이 버전과 관련된거 같음 일단 다음에 노트북으로
실험해 보겠음
다음으로 "Content-Type"라는 헤더와 "application/json;charset=UTF-8"라는 값을 입력해줌
마지막으로 ResponseEntity로 msg에 저장한 JSON타입과 헤더 상태메시지를 전송함