Skip to main content Link Menu Expand (external link) Document Search Copy Copied

@Controller ์™€ @GetMapping์„ ์ด์šฉํ•ด์„œ htmlํŒŒ์ผ ๋„์šฐ๊ธฐ


์Šคํ”„๋ง๋ถ€ํŠธ๋Š” static ํด๋”์— index.html ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ฉด, index.html ํŒŒ์ผ์„ ์ดˆ๊ธฐ ํ™”๋ฉด์œผ๋กœ ๋„์–ด์ค€๋‹ค.

๊ทธ๋ฆฌ๊ณ  index.html ํŒŒ์ผ์˜ <body> ๋ถ€๋ถ„์—

<a href = "/randomname">Click</a> ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๊ณ  (randomname ๋ถ€๋ถ„์—๋Š” ์›ํ•˜๋Š” ์ด๋ฆ„์„ ๋„ฃ๋Š”๋‹ค.)

, ์›น์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  localhost์— ๋“ค์–ด๊ฐ€๋ณด๋ฉด,

image-20221018175255522

Click์ด๋ผ๋Š” ํ•˜์ดํผ๋งํฌ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ํด๋ฆญํ•˜๋ฉด

http://localhost:8080/randomname ์œผ๋กœ ์ด๋™ํ•˜๊ฒŒ ๋œ๋‹ค.

image-20221018175313796

ํ•˜์ง€๋งŒ, ์•„์ง ์ž‘์„ฑํ•ด ๋†“์€๊ฒŒ ์—†๊ธฐ ๋•Œ๋ฌธ์—, error page๊ฐ€ ๋‚˜์˜จ๋‹ค.


๋จผ์ € templates ํด๋”์— randomname.html ํŒŒ์ผ์„ ๋งŒ๋“ ๋‹ค.

image-20221018175333496

body ๋ถ€๋ถ„์— This is randomname html ์ด๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.

์ด์ œ ์ด randomname.html ํŒŒ์ผ์„ ๋„์›Œ์ฃผ๊ธฐ ์œ„ํ•ด Controller๋ผ๋Š” ๊ฒƒ์„ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.


image-20221018175353342

java ํด๋”์— MakeController ๋ผ๋Š” javaํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ๋‹ค.

@Controller ์—๋„ˆํ…Œ์ด์…˜์„ ๊ผญ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ 

@GetMapping("randomname") ์„ ํ•ด์ฃผ์–ด์•ผ randomname ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ์ค€๋‹ค.

์‚ฌ์‹ค GetMapping() ๊ธฐ์ค€์œผ๋กœ ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„์€ ๊ผญ randomname์ด ์•„๋‹ˆ์—ฌ๋„ ๋œ๋‹ค.

๋Œ€์‹  return ๊ฐ’์€ ๊ผญ ์—ฐ๊ฒฐํ•  htmlํŒŒ์ผ๋ช…์œผ๋กœ ํ•ด์•ผํ•œ๋‹ค.

randomname ๋ฉ”์„œ๋“œ์˜ ๋‚ด์šฉ์€ โ€œrandomnameโ€ ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.

randomname ์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, randomname ์ด๋ผ๋Š” ์ด๋ฆ„์˜ html ํŒŒ์ผ์ด ์žˆ๋‚˜ ํ™•์ธ์„ ํ•ด๋ณด๊ณ  ์žˆ๋‹ค๋ฉด html ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ค๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.


์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  Click์„ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด

image-20221018175409072

์ด์™€ ๊ฐ™์ด, randomname.html body ๋ถ€๋ถ„์— ์ž…๋ ฅํ–ˆ๋˜ ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


์ •๋ฆฌ

  1. Click๋ฅผ ์‚ฌ์šฉํ•˜๋˜, url ์„ ์ž…๋ ฅํ•ด์„œ localhost:8080/์›ํ•˜๋Š”์ด๋ฆ„ ์œผ๋กœ ๋“ค์–ด๊ฐ€๋˜, htmlํŒŒ์ผ์„ ๋„์šฐ๊ณ  ์‹ถ๋‹ค๋ฉด ๋จผ์ €, resource/templates ํด๋”์— [html์ด๋ฆ„].html ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ ์›ํ•˜๋Š”์ด๋ฆ„์€ GetMapping์œผ๋กœ ๋„ฃ์„ ์ธ์ž์™€ ๋™์ผํ•ด์•ผ ์‹œ์Šคํ…œ์ด ์บ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, GetMapping(โ€œ์›ํ•˜๋Š”์ด๋ฆ„โ€) ๊ณผ ๋™์ผํ•ด์•ผ ์บ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

  2. html ํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ๋‹ค๋ฉด, ์ด๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ์ค„ Controller ์ž๋ฐ” ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.

  3. @Controller ์—๋„ˆํ…Œ์ด์…˜์„ ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

  4. @GetMapping(โ€œ์›ํ•˜๋Š”์ด๋ฆ„โ€) ์„ ์ž‘์„ฑํ•˜๊ณ  return ๊ฐ’์œผ๋กœ โ€œ[html์ด๋ฆ„]โ€ ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  5. [html์ด๋ฆ„]์ด ๋ฐ˜ํ™˜๋˜๋ฉด์„œ, resource/templates ํด๋”์—์„œ html์„ ์ฐพ๊ณ , ์ž‘์„ฑํ•ด๋‘”, [html์ด๋ฆ„].html ์ด ๋„์›Œ์ง„๋‹ค.

โ€ป templates ํด๋”์— ๊ผญ ์ €์žฅ์„ ํ•ด์ฃผ์–ด์•ผ controller๊ฐ€ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ static ํด๋”์— htmlํŒŒ์ผ์„ ์ €์žฅํ–ˆ๋‹ค๋ฉด, Controller๊ฐ€ ์•„๋‹Œ index.html์—์„œ ์ฐธ์กฐ๋ฅผ ๋กœ ํ•ด์ฃผ๋ฉด ๋ฐ”๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ static ํด๋”์— ์ €์žฅํ•œ html์€ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์—ฐ๊ฒฐ์‹œ์ผœ์ค„ ์ˆ˜ ์—†๋‹ค.

image-20221018175430151