본문 바로가기
Back-End/Spring

1.스프링부트 웹개발 기초

by 두두리안 2020. 12. 25.
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