Web/Spring
스프링 HTTP 응답
Jinn
2023. 11. 19. 22:06
스프링(서버)에서 응답 데이터를 만드는 방법
- 정적 리소스
정적인 HTML, CSS, Javascript를 제공할 때 정적 리소스를 사용한다.
- 뷰 템플릿 사용
동적인 HTML을 제공할 때 뷰 템플릿을 사용한다.
- HTTP 메시지 사용
HTTP API를 제공하는 경우 HTTP 메시지 바디에 JSON 등의 형식으로 데이터를 보낸다.
정적 리소스
src/main/resources/static 경로에 파일을 넣어두면 정적 리소스로 제공한다.
뷰 템플릿
src/main/resources/templates 경로를 기본 뷰 템플릿 경로로 사용한다.
HTTP 메시지 바디에 직접 입력(HTTP API)
@Slf4j
@Controller
//@RestController
public class ResponseBodyController {
@GetMapping("/response-body-string-v1")
public void responseBodyV1(HttpServletResponse response) throws IOException {
response.getWriter().write("ok");
}
@GetMapping("/response-body-string-v2")
public ResponseEntity<String> responseBodyV2() {
return new ResponseEntity<>("ok", HttpStatus.OK);
}
@ResponseBody
@GetMapping("/response-body-string-v3")
public String responseBodyV3() {
return "ok";
}
@GetMapping("/response-body-json-v1")
public ResponseEntity<HelloData> responseBodyJsonV1() {
HelloData helloData = new HelloData();
helloData.setUsername("userA");
helloData.setAge(20);
return new ResponseEntity<>(helloData, HttpStatus.OK);
}
@ResponseStatus(HttpStatus.OK)
@ResponseBody
@GetMapping("/response-body-json-v2")
public HelloData responseBodyJsonV2() {
HelloData helloData = new HelloData();
helloData.setUsername("userA");
helloData.setAge(20);
return helloData;
}
}
- HttpServletResponse 객체 사용
- ResponseEntity 사용 (TEXT, JSON)
- @ResponseBody 사용
- @RestController 사용: 해당 컨트롤러에 모두 @ResponseBody 적용됨