본문 바로가기
Spring

스프링 웹 개발 기초 (개발방식 3가지 part1)

by 리승우 2022. 8. 14.

웹 개발 방식 3가지

> 정적 컨텐츠

> MVC와 템플릿 엔진 

> API

 

[정적 컨텐츠] ※파일을 그냥 내려준다

1. 웹브라우저에서 locallhost:8080/hello-static.html을 넘김

2. 스프링부트가 띄울 때 내장된 톰켓 서버를 거친 후, 스프링으로 넘김

2. 컨트롤러를 먼저 통하나, 해당 컨트롤러에 매핑된 메소드가 없을 경우

3. 자체적으로 생성한 뒤 웹브라우저에 내용 변환없이 그대로 띄운다

 

 

[MVC와 템플릿 엔진]

- Model, View, Controller

 

view > 보여주는 내용 (화면과 관련된 일)

controller > 처리해야할 데이터들 (비즈니스와 관련된 로직들)

model > controller에서 처리한 내용들을 다듬어서 view에 필요한 데이터들만으로 view에게 전달해줌

 

M,V,C로 쪼개어 뷰를 렌더링할 때 템플릿 엔진 적용

 

 

1. 웹브라우저에서 locallhost:8080/hello-mvc를 넘김

2. 스프링부트가 띄울 때 내장된 톰켓 서버를 거친 후, 스프링으로 넘김

3. helloController의 hello-mvc에 매핑이 되어있는 것을 확인 후, 해당 메소드를 호출

4. return은 hello-template
    model은 (name:spring) ※키와 값

5. viewResolver에게 4번의 데이터들을 던짐

    return값과 같은 것을, templates에서 찾은 후 랜더링 후 HTML 반환

6. 웹 브라우저로 반환함

 

package hello.hellospring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class helloController {

    @GetMapping("hello")
    public String hello(Model model){
        model.addAttribute("data","hello!!");
        return "hello";
    }

    @GetMapping("hello-mvc")
    public String helloMvc(@RequestParam("name") String name, Model model){
        model.addAttribute("name",name);
        return "hello-template";
    }
}
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
</body>

'Spring' 카테고리의 다른 글

JPA란?  (1) 2022.10.05
getter / setter 사용이유  (0) 2022.08.15
앞으로 할 것들  (0) 2022.08.14
스프링 웹 개발 기초 (개발방식 3가지 part2)  (0) 2022.08.14
스프링 입문  (0) 2022.08.13

댓글