본문 바로가기
Spring/스프링 입문

[스프링 입문] 2 - (1) 정적 컨텐츠, (2) MVC와 템플릿 엔진

by Poorm 푸름 2023. 7. 29.

[정적 컨텐츠]

 

- 파일을 웹브라우저에 그대로 전달한다

 

src - main - resources - static 우클릭 → New - File 클릭 → hello-static.html 입력 → 강의 자료 코드 넣기

run → 인터넷에 localhost:8080/hello-static.html 입력

 

※ 과정

 

localhost:8080/hello-static.html 실행

           ↓

내장 톰켓 서버 입력 받음 

           ↓

Controller에서 hello-static 있는지 찾는다 

           ↓

없으면 내부 resources에서 hello-static 찾는다

           ↓

찾았으면 웹 화면에 출력

 

 

[MVC와 템플릿 엔진]

 

- 서버에서 프로그래밍해서 html을 동적으로 바꿔 출력

  ( View = 화면그리기 , Controller = 비지니스 로직 )

 

1. HelloController 수정

src - main - java - hello.hellospring - controller - HelloController 클릭 → 강의자료 코드 붙여넣기  

 

☞  @GetMapping("hello-mvc") : localhost:8080/hello-mvc 일 때 아래 메서드 호출

☞  @RequestParam("name") : RequestParam("실제 값") String 설정할 변수 이름

☞  model.addAttribute() : Model 객체 파라미터로 받아 데이터 넘기기

                                         (변수 이름변수에 넣을 데이터 값);

                                         이때 변수에 넣을 데이터 값은 String name을 의미한다

                                         즉 내가 입력하는대로 name 결정

☞ return "hello- templates" : hello- templates.html 파일 호출

 

2. hello-templates.html 만들기

src - main - resource - templates 우클릭 → New - File 클릭 → hello-templates.html 입력 → 강의자료 코드 넣기

  

☞  ${name} : model에 있던 값 가져온 것 ( = String name )

☞ 실제 서버를 통해 돌아가면 'hello ' + ${name}  만 출력된다

☞ 서버없이 그냥 html 만들어서 볼 때에는 hello! empty가 출력된다

     그냥 경로를 복사해서 파일을 열어주는 것이다

     (hello-template.html 우클릭 → Copy Path/Reference - Absolute Path 클릭 → 검색창에 입력)

 

3. get방식으로 파라미터 넘겨주기

 

인터넷에 http://localhost:8080/hello-mvc?name=hibye~~! 검색

여기서 hibye~~! 부분이 String name이자 model에서 받아온 ${name} 값이다

원하는 문구를 바로 화면에 출력할 수 있다 (아래 사진 참고)

 

※ 과정

 

localhost:8080/hello-mvc?name= 실행

           ↓

내장 톰켓 서버가 입력 받음 

           ↓

Controller에서 찾기 (늘 controller 우선으로 찾는다)

           ↓

찾았으면 메서드 호출하고 hello-template 호출

           ↓

viewResolver가 동작하면서 view를 찾아주고 template연결해준다 

           ↓

Thymeleaf 처리

           ↓

html 변환 후 웹에서 출력

 

 

[출처] 김영한 강사님 인프런 스프링 입문 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세

www.inflearn.com