Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- java map 출력
- 인터프린터언어
- java list 출력
- java map 저장
- javaJVM
- java알고리즘문제풀이
- 격파르타장점
- sqld자격증합격
- java map
- 비전공자sqld
- 격파르타비전공자
- 항해99후기
- java최솟값구하기
- 노베이스부트캠프
- 격파르타합격후기
- java알고리즘
- java 자료구조 활용
- 프로그래머스제일작은수
- javaJRE
- 격파르타후기
- 작은수제거하기
- 컴파일
- java set 출력
- 코딩부트캠프후기
- java기본자료형
- java list 저장
- java set 저장
- 항해15기
- java참조자료형
- 프로그래머스
Archives
- Today
- Total
코딩과 결혼합니다
스프링 입문 : 정적 컨텐츠, MVC, API 본문
728x90
정적 컨텐츠
단순히 파일을 클라이언트에 전송하는 방식.
정적 컨텐츠의 경우에는 스프링 컨테이너를 거치지 않고, 바로 해당되는 HTML 파일을 클라이언트에 전송한다.
MVC와 템플릿 엔진
웹 브라우저에서 특정 페이지를 요청하면 톰캣 서버는 관련 컨트롤러를 스프링 컨테이너에서 찾는다.
컨트롤러는 요청에 필요한 데이터를 모델에서 가져오거나, 데이터를 업데이트 등을 담당하고, 타임리프를 이용해 동적인 HTML 문서를 생성하여 뷰로 전달한다.
name이라는 데이터를 바로 넣어서 보내는 방법
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "이채원");
return "hello";
}
@RequestParam 형식으로 동적으로 데이터를 넣어 보내는 방법
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model){
model.addAttribute("name", name);
return "hello-template";
}
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>
hello-mvc 경로로 GET 요청이 들어오면 helloMvc 메서드가 호출된다.
이 메서드는 name이라는 요청 매개변수를 받고, Model 객체를 매개변수로 받는다.
model.addAttribute 로 name이라는 데이터를 모델에 추가하고, 해당 데이터는 타임리프 템플릿에서 사용할 수 있게 된다.
name의 변수값에 따라 "hello {name}" 형태의 문구가 생성되어 웹브라우저로 전달된다.
API
주로 객체를 반환하는 방식으로 동작한다. 이때 HttpMessageeConverter를 사용하여 객체를 적절한 방식으로 변환하고, 해당 변환된 데이터를 HTTP Response Body에 직접 넣어 클라이언트에 반환한다.
이러한 방식에서는 별도의 뷰가 필요하지 않으며, 일반적으로 JSON이나 XML 형식과 같은 데이터 형식으로 변환된 객체가 클라이언트에 전달된다.
@ResponseBody 로 응답 바디부에 직접 내용을 넣어주기
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name){
return "hello " + name;
}
뷰 리졸버를 사용하지 않고 대신에 HTTP의 BODY에 문자 내용을 직접 반환한다.
@ResponseBody 로 객체를 반환하기
@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 (키 : 값) 의 형태로 데이터가 반환되었다.
'2세 > Spring' 카테고리의 다른 글
spring 유용한 단축키 모음 (0) | 2024.02.05 |
---|---|
null을 처리하는 방법 (0) | 2024.02.04 |
스프링 입문 : 라이브러리 살펴보기 (0) | 2024.02.03 |
[Kotlin] 프로젝트 생성과 환경설정 (1) | 2024.01.20 |
[Kotlin] 개념과 기초 문법 (0) | 2024.01.20 |