우리는 Tomcat을 실행시켜 내부 서버를 구동해봤다.

하지만 아무런 내용이 없었는데, 이제 내용을 채워서 뭔가를 만들어보도록 하겠다.

 

프로젝트를 열어서 resources - static폴더를 누른다.

static은 정적폴더로 변화하지 않는 내용들을 넣으면 된다. 우리는 static폴더에 웹사이트 방문시 처음 뜨는 Welcome Page(대문)을 만들어보도록 하겠다.

더보기

 

 

 

static - 마우스 우클릭 - New - File - index.html 입력 - 파일 생성 완료

 

더보기
<!DOCTYPE HTML>
<html>
<head>
    <title>Hello</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head>
<body>
Hello
<a href="/hello">hello</a>
</body>
</html>

index파일에 welcome page 내용을 입력해주고 저장, 서버를 재실행 한다

 

wellcome가 잘 만들어졌음을 확인할 수 있다.

static/index.html 을 올려두면 Welcome page 기능을 제공한다.

 

방금 만든 Welcome 페이지는 정적페이지로, 단순히 웹브라우저로 응답을한 것이다(파일을 전송한 것) - 프로그래밍이 아니다.

그런데 템플릿 엔진이라는 기능을 사용하면 루프를 넣거나 대문의 모양을 바꿀 수 있다.

여기서는 thymeleaf(타임리프)라는 템플릿 엔진을 사용하도록 하겠다.

thymeleaf 공식 사이트:  https://www.thymeleaf.org/
스프링 공식 튜토리얼: https://spring.io/guides/gs/serving-web-content/

스프링부트 메뉴얼: https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-template-engines

 

 

Spring Boot Features

Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. It occurs as part of closing the application context and is performed in the earliest

docs.spring.io

 

스프링부트에서 사용가능한 템플릿 엔진 4가지

스프링 부트에서는 FreeMaker, Groovy, Thymeleaf, Mustache 4가지 탬플릿 엔진을 지원한다.

 

이제 무언가 동작하고, 프로그래밍되는 것을 해보도록 하겠다.

홈페이지, 서버가 작동하기 위해서는 이를 동작하게 하는 방식이 있을 것이다.

이를 동작하게하고 조정하는 Controller(조건등이 기입된 매뉴얼)가 필요하다

 

Controller는 main - java - hello.hellospring 폴더 클릭 - 오른쪽 마우스 - New - Package - controller 입력

 

controller 패키지를 생성해주고 여기에서 Java Class 파일을 다시 생성해서 HelloController로 이름지어준다

 

HelloController에 @Controller라고 어노테이션을 해주면 템플릿 엔진을 사용하기 위한 기본 준비가 끝난다

 

이제 hello라는 주소로 접속하게되면 해당 페이지를 띄우도록 하는 문법을 적도록 하겠다.

    @GetMapping("hello")
    public String hello(Model model) {
        model.addAttribute("data","hello!!꺅");
        return "hello";
    }
    //hello로 들어오는 주소를 받아서 맵핑해주는 문구
}

여기까지 작성한 다음 resources - templates폴더를 선택 - hello.html이라는 파일을 생성해준다

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Hello</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head>
<body>
<p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p>
//th:는 2번째 줄에서 thymeleaf 템플릿을 사용한다고 선언한 후, 이를 적용하는 것이다
</body>
</html>

앞서 Controller에서 data라는 mole을 만들고 이 값이 hello!!꺅으로 만들었었다. ( 쉽게 설명하면 data = hello!!꺅)

이제 서버를 구동시켜서 hello라는 페이지로 접속을 하면 우리가 html과 Controller로 작성한 문법에 따라 대문(Welcom page)에 텍스트가 나타나게 된다.

 

 

저장하고, 서버를 꼭 껐다가 다시 재실행해야 우리가 의도, 입력한 값이 나온다.

 

 

어떻게 이렇게 나오나? 궁금할 것이다.

예를 들어보도록 하겠다.

  • 친구가 철수를 만나러 철수네 집에 찾아간다
  • 철수(hello)는 톰캣구 서버로8080에 산다
  • 철수(hello)를 부른다
  • 철수네 엄마가 계셨고, 철수를 불러주신다고 한다
  • 철수가 나온다

localhost:8080 - 톰캣구 서버로8080. 철수네 집에 찾아간다

localhost:8080/hello - 철수네 집에서 철수를 부른다. "철수야~"

helloController - 우리집의 컨트롤러인 엄마가 철수를 불러주신다 "철수야~ 친구왔다" return "hello"

+ Recent posts