Spring Web
과 Thymeleaf
사용src/main/java/com/example/demo/
에 controller
패키지 생성 (프로젝트 생성 시 이름 등에 따라 경로가 바뀔 수 있음)MainController.java
생성package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class MainController {
@GetMapping("test")
public String main (Model model) {
model.addAttribute("data", "TEST");
return "test";
}
}
src/main/resources/templates
경로에 test.html
생성하기<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<p th:text="${data}"></p>
</body>
</html>
@Controller
@ResponseBody
@RestController
@Controller
와 @ResponseBody
를 합친 어노테이션이다.@RequestMapping
@RequestMapping(value = "/example", method = RequestMethod.GET)
public String getExample() {
...
}
value
: 매핑할 URL 패턴 지정method
: 요청 HTTP 메소드를 지정. 위의 예시의 경우 GET 요청에 대해서만 해당 메소드를 매핑한다.@...Mapping
(Get, Post, Put, Delete)@RequestMapping
의 단축 어노테이션@RequestMapping
와 같으며, 특정 파라미터가 포함된 요청만 매핑하기 등 간단하게 사용할 수 있다.핸들러(Handler)란?
- HTTP 요청을 처리하는 객체나 메소드를 말한다.
- 클라이언트로 들어오는 요청을 받고 비지니스 로직을 실행한 후 알맞은 응답을 반환하는 역할이다.
- 해당 글에서 작성한 Controller도 일종의 핸들러라고 할 수 있다.