기록공간

[Spring] 인프런 스프링 입문 - 정리 [2] 본문

JAVA & Spring

[Spring] 인프런 스프링 입문 - 정리 [2]

mkm101 2022. 12. 1. 00:05
반응형

스프링 웹 개발 기초

  • 정적컨텐츠
  • MVC와 템플릿 엔진
  • API

정적 컨텐츠 : HTML 파일을 웹브라우저에 그대로 띄우는 것을 의미함

톰켓서버가 웹 브라우저로부터 hello-static을 받게되면, 스프링에서 관련 컨트롤러를 먼저 찾게된다.

만약 없다면, resources: static파일에서 해당 이름이 적힌 파일을 찾아서, 이를 반환함

 


MVC와 템플릿 엔진

MVC (Model,View,Controller) 

  - Model과 Controller는 비즈니스 로직과 내부적인 프로세스를 처리 담당

  - View는 화면 그리기 담당

1
2
3
4
5
6
7
    @GetMapping("hello-mvc")
    public String helloMvc(@RequestParam("name"String name, Model model)
    {
        model.addAttribute("name",name);
        return "hello-template";
 
    }
cs

다음과 같은 코드를 HelloController파일에 입력하게 되면, Template 파일에서 hello-template.html파일을 찾게됨  

1
2
3
4
5
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>
</body>
cs

해당파일에 위 코드를 입력하고, 주소창에 http://localhost:8080/hello-mvc?name=Spring! 입력을하면

페이지가 이렇게나옴

Controller에서 name이라는 매개변수에 Spring!을 파라미터를 전달해주고, 모델에 담긴다음

template으로 넘어감

템플릿 엔진 이미지

웹브라우저에서 localhost:8080/hello-mvc를 호출하면 톰켓 서버를 거친다음, hellocontroller에 호출

hello-template.html에 model(name:spring)을 전달해준다음, viewResolver에서 템플릿엔진이 렌더링한다음

다시 웹브라우저로 반환   (정적일때는 변환을 하지 않았으므로, 차이가있음)

 

 

 

 

템플릿 엔진이란 ?

 

JSP, PHP : 템플릿 엔진 : HTML을 서버에서 동적으로  바꾼다음 , 웹브라우저에 실행 시킴

이를 실행시키기위해 MVC (Model,View,Controller)패턴을 필요로함

 

API : 

 

 

JASON 방식으로 출력

Key : Value

Spring의 기본 : 객체를 반환하고 ResponseBody를 선언하게되면 JASON으로 홈페이지에 반환됨

@ResponseBody 사용원리

 @ResponseBody 사용

  •  HTTP의 BODY에 문자 내용을 직접 반환
  •  viewResolver 대신, HttpMessageConverter가 동작한다.
  • 기본 문자처리 : StringHttpMessageConverter
  • 기본 객체처리 : MappingJackson2HttpMessageConverter
  • byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음

 

 

반응형