5강 + 6강

2023. 1. 25. 18:25Spring 강의/section2

스프링 웹 개발 기초

  • 정적 컨텐츠 : 서버에서 하는 일 없이 파일을 그대로 웹 브라우저에 내려줌
  • MVC와 템플릿 엔진 : html을 서버에서 프로그래밍해서 동적으로 바꾼 후 브라우저에 내림
  • API : 필요한 데이터 구조 포맷으로 클라이언트에게 데이터 전달

 

정적 컨텐츠

  • 스프링부트는 기본적으로 정적 컨텐츠를 제공한다.

MVC와 템플릿 엔진

  • MVC : Model, View, Controller
    • view : 화면
    • controller : 비즈니스 로직 + 서버 백단에 관련된 작업들
    • model : controller에서 처리한 작업들 중 화면에 필요한 것들을 담아서 화면에 넘긴다.

좀 더 내용 있는 컨트롤러를 만들어보자.

localhost:8080/hello-mvc와 매핑되는 컨트롤러를 만들었다.

이번에는 @RequestParam("name")이라는 것이 추가 되었는데

지금은 get방식이기 때문에 url에서 저 값을 줘야 한다.

 

http://localhost:8080/hello-mvc?name=spring!

이렇게 되면 name은 @RequestParam("name")이 name에 들어가고 url name이 갖고 있는 값인 spring!이 value값으로 들어오게 된다. 그리고 그걸 hong이라는 이름으로 부르겠다는 것이다.

 

말이 복잡해졌는데 관계부터 정리하자.

 

url에 있는 name  ==  @RequestParam("name")

model.addAttribute의 hong  ==  @RequestParam("name") String hong

hello-template.html의 name1  ==  model.addAttribute("name1", hong)

 

url에서 name에 대한 값을 주면 @RequestParam이 받아서 name에 대한 값(spring!)을 변수 hong에 넣는다.

그리고 리턴값을 보면 hello-template이 있는데 [templates]에 hello-template.html이 있다는 것이다.

 

 

그러면 여기서의 name1에 값을 주기 위해

model.addAttribute에 키값을 맞춰준다.

그리고 저 위치에 넣고 싶은 값(spring!)을 담고 있는 hong을 보낸다.

model.addAttribute("name1", hong) 

 

이렇게 하면 url에서 name에 어떤 값을 주냐에 따라 항상 다른 name을 띄울 수 있다.

'Spring 강의 > section2' 카테고리의 다른 글

[7강]  (0) 2023.01.30