본문 바로가기
Spring

[Spring] 실습 : 스프링 MVC 프로그램

by 기록하는_사람 2022. 11. 16.

스프링 MVC 프로그램

📌 프로젝트 생성

 

📌 컨트롤러 생성

① src/main/java → com.example.demo 우클릭, 새로 만들기 → 패키지 선택 후, com.example.demo.controller 생성.

② controller 우클릭, 새로 만들기 → Java 클래스 선택 후, HelloViewController 클래스 생성.

 

📄  HelloViewController.java

package com.example.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("hello")
public class HelloViewController {
    
    @GetMapping("view")
    public String helloView() {
        return "hello";
    }
}

 

💡 어노테이션 설명

https://codingrecord2209.tistory.com/316

 

[Spring] Controller와 관련 어노테이션

Controller 📌 Controller : POJO(Plain Old Java Object) 클래스로 작성. 어떤 클래스를 상속하는 등의 특별한 처리를 하지 않는 클래스. Controller - @Controller 📌 @Controller : 클라이언트와 데이터 입출력을 제어

codingrecord2209.tistory.com

 

📌 URL 매핑

- HelloViewController 클래스에 @RequestMapping("hello") 어노테이션 부여.

@RequestMapping("hello")
public class HelloViewController {
   ...

- 요청 핸들러 메서드에 @GetMapping("view") 어노테이션 부여. 

    @GetMapping("view")
    public String helloView() {
        ...

→ 클라이언트가 URL(http://localhost:8080/hello/view)로 GET 메서드를 보내면,

     HelloViewController 클래스의 helloView( ) 메서드 호출됨. 

 

💡 스프링 부트에서의 URL 표기 

http://<서버 이름>(:포트 번호)/<컨텍스트 패스>/<매핑 URL>

(스프링 부트에서는 <컨텍스트 패스> 생략됨.)

 

📌 뷰 생성

① resources/templates 폴더 밑에 hello.html 생성.

② 코드 작성.

📄  hello.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>View Sample</title>
</head>
<body>
    <H1>Hello View:)</H1>
</body>
</html>

 

💡 스프링 부트의 프로젝트에서 템플릿 엔진 사용할 경우, 뷰 두는 곳 규칙

① resources/templates 폴더 밑에 뷰를 생성.

② 뷰가 많은 경우, 기능별로 폴더 만들어 보관.

③ 폴더 나눈 경우, templates 폴더 이하의 폴더명을 요청 핸들러 메서드의 반환값에 지정해야 함.

④ CSS나 자바스크립트 등은 resources/static 폴더에 배치. 

 

스프링 MVC 프로그램 - 결과물

📌 스프링 MVC 프로그램 - 결과물

'Spring' 카테고리의 다른 글

[Spring] Model 인터페이스  (0) 2022.11.16
[Spring] 템플릿 엔진과 타임리프  (0) 2022.11.16
[Spring] Controller와 관련 어노테이션  (0) 2022.11.16
[Spring] 스프링 MVC  (0) 2022.11.15
[Spring] MVC 모델  (0) 2022.11.15

댓글