๐Ÿ“Œ Spring MVC ํŒŒ๋ผ๋ฏธํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹ ์‹ค์Šต ์ •๋ฆฌ

My Pale Blue Dotยท2025๋…„ 5์›” 2์ผ
0

SPRING BOOT

๋ชฉ๋ก ๋ณด๊ธฐ
2/40
post-thumbnail

๐Ÿ“… ๋‚ ์งœ

2025-05-02


๐Ÿ“ ํ•™์Šต ๋‚ด์šฉ

1๏ธโƒฃ ์ฃผ์š” ๊ฐœ๋…

โœ… @RequestParam

  • ๋™๊ธฐ ๋ฐฉ์‹์˜ form ๋ฐ์ดํ„ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ์ „๋‹ฌ
  • required, defaultValue ์˜ต์…˜์œผ๋กœ ์œ ์—ฐํ•œ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

โœ… @RequestBody

  • ๋น„๋™๊ธฐ ๋ฐฉ์‹(JSON ๋“ฑ)์˜ ๋ณธ๋ฌธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉ
  • POST ์š”์ฒญ์—์„œ JSON ํ˜น์€ ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๋ฐ›์Œ

โœ… @ModelAttribute

  • ํผ์ด๋‚˜ ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ์ฒด์— ๋ฐ”์ธ๋”ฉํ•˜์—ฌ ์ž๋™ ๋งคํ•‘
  • ๊ฐ์ฒด์˜ ํ•„๋“œ๋ช…์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋ช…๊ณผ ์ผ์น˜ํ•˜๋ฉด ์ž๋™ ์ฃผ์ž…๋จ

โœ… @PathVariable

  • URL ๊ฒฝ๋กœ์˜ ์ผ๋ถ€๋ฅผ ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„์˜ค๋Š” ๋ฐฉ์‹

โœ… HttpServletRequest

  • ์„œ๋ธ”๋ฆฟ ๋ฐฉ์‹์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ ์ง์ ‘ ์ถ”์ถœ, ์„ธ์…˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

โœ… RedirectAttributes

  • ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌ์ŠคํŠธ๋ง์œผ๋กœ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉ
  • ๐Ÿ’ก model์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ›„ ์†Œ๋ฉธ๋˜๋ฏ€๋กœ, ํŒŒ๋ผ๋ฏธํ„ฐ ์œ ์ง€๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ RedirectAttributes ํ™œ์šฉ

๐Ÿ” ์‚ฌ์šฉ๋œ DTO ๊ตฌ์กฐ

public class PersonDto {
    private String username;
    private int age;
    private String addr;

    // ์ƒ์„ฑ์ž, getter, setter, toString ํฌํ•จ
}

๐Ÿ” ์‹ค์Šต ์ฝ”๋“œ

โœ… Controller

@Controller
@Slf4j
@RequestMapping("/param")
public class ParameterTestController {
    // ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ ์‹ค์Šต: @RequestParam, @RequestBody, @PathVariable, Model, RedirectAttributes ๋“ฑ
    // ์˜ˆ: @GetMapping("/p01"), @PostMapping("/p03"), @GetMapping("/page01"), ...
}

โœ… JSP: /param/page01.jsp

<h1>PAGE 01</h1>
USERNAME : ${dto.username }<br/>
AGE : ${dto.age }<br/>
ADDR : ${dto.addr }<br/>
${test}<br/>

๐Ÿงช ์‹ค์Šต ๋ฐฉ๋ฒ•

โœ… ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ…Œ์ŠคํŠธ

GET http://localhost:8090/param/p01?name=ํ™๊ธธ๋™
GET http://localhost:8090/param/page01?username=ํ™๊ธธ๋™&age=30&addr=์„œ์šธ
GET http://localhost:8090/param/p08/ํ™๊ธธ๋™/30/์„œ์šธ
GET http://localhost:8090/param/page05?username=ํ™๊ธธ๋™&age=25&addr=๋Œ€๊ตฌ

โœ… Postman ํ…Œ์ŠคํŠธ

โ–ถ POST ๋ฐฉ์‹ (form ๋ฐ์ดํ„ฐ)

  • URL: http://localhost:8090/param/p03
  • Method: POST
  • Body โ†’ form-data or x-www-form-urlencoded
name=ํ™๊ธธ๋™

โ–ถ POST ๋ฐฉ์‹ (@RequestBody JSON)

  • URL: http://localhost:8090/param/p04
  • Headers: Content-Type: application/json
"ํ™๊ธธ๋™"

๐Ÿ”„ Forward / Redirect ํ๋ฆ„

โ–ถ Forward

GET http://localhost:8090/param/forward1
โ†’ forward2 โ†’ forward3 โ†’ JSP๋กœ ์ถœ๋ ฅ
  • ๋‚ด๋ถ€ ์ด๋™ (์ฃผ์†Œ ๋ณ€ํ™” ์—†์Œ)
  • Model ๋ฐ์ดํ„ฐ ์œ ์ง€

โ–ถ Redirect

GET http://localhost:8090/param/redirect1
โ†’ RedirectAttributes๋ฅผ ํ†ตํ•ด r1, r2 ์ฟผ๋ฆฌ์ŠคํŠธ๋ง ์ „๋‹ฌ
โ†’ ์ตœ์ข… view์—์„œ r1, r2, r3 ์ถœ๋ ฅ
  • ์ฃผ์†Œ ๋ณ€ํ™” ์žˆ์Œ
  • Model ๋Œ€์‹  RedirectAttributes๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ

๐Ÿ”ฅ ์ •๋ฆฌ

  • Spring MVC์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ „๋‹ฌ ๊ฐ€๋Šฅ
  • @RequestParam, @PathVariable, @ModelAttribute, @RequestBody๋Š” ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ƒํ™ฉ์— ์ ํ•ฉ
  • Model๊ณผ RedirectAttributes๋ฅผ ํ™œ์šฉํ•ด ๋ทฐ๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๊ฐ€๋Šฅ
  • ModelAndView๋Š” ๋ทฐ ์ด๋ฆ„๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ์„ค์ •ํ•˜๋Š” ๋ฐฉ์‹
  • ์„œ๋ธ”๋ฆฟ ๊ธฐ๋ฐ˜ HttpServletRequest๋„ ๋ณ‘ํ–‰ ์‹ค์Šตํ•จ
  • Redirect ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด RedirectAttributes๋ฅผ ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉํ•ด์•ผ ํ•จ

๐Ÿ”— ์ฐธ๊ณ  ์ž๋ฃŒ


profile
Here, My Pale Blue.๐ŸŒ

0๊ฐœ์˜ ๋Œ“๊ธ€