728x90
1. 스프링 웹개발 기초
목차
스프링 웹 개발할때는 3가지의 종류가 있다
- 1.정적 컨텐츠
- 2.MVC와 템플릿 엔진
- 3.API
1.정적 컨텐츠
- 정적 컨텐츠는 resource/static 폴더에 html 을 넣고 실행한다.
- 스프링 컨테이너 안에서는 static 관련 컨트롤이 들어 있지 않다hello-static.html
<!DOCTYPE HTML> <html> <head> <title>static content</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> 정적 컨텐츠 입니다. </body> </html>
2.MVC와 템플릿 엔진
- 스프링 컨테이너 안에있는 MVC를 이용한다
- Controller는 서비스 계층을 호출하고 결과를 뷰에 반환한다
- @RequestParam은 뷰의 있는 name값을 String name의 넣는다
- model.addAttribute은 가져온 String name의 값은 뷰에 넘겨준다
- return "hello-template"은 templates폴더 안에 hello-template.html로 반환한다
- MVC에서는 viewResolver 작동한다
HelloController
@Controller
public class HelloController {
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
}
hello-template.html
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</html>
3.API
- @ResponseBody는 문자반환 과 객체 반환이 있다
- API에서는 HttpMessageConverter 작동한다
- 객체로 반환할때는 default값은 json이다
HelloController @ResponseBody 문자반환
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello " + name;
}
HelloController @ResponseBody 객체반환
@Controller
public class HelloController {
@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;
}
}
}
참고자료
728x90
'Back-End > Spring' 카테고리의 다른 글
6.스프링 DB접근기술 (0) | 2020.12.29 |
---|---|
5.순수 JDBC 접근기술 (0) | 2020.12.28 |
4.회원 관리 예제 - 웹 MVC개발 (0) | 2020.12.28 |
3.스프링빈과 의존관계 (0) | 2020.12.28 |
2.회원관리 예제 (0) | 2020.12.25 |