Spring ๊ธฐ์ดˆ - 4

1 minute read

๐Ÿ’ป2022-03-19

Spring

๐Ÿ’ก ํŒจ์ŠคํŠธ ์บ ํผ์Šค ์Šคํ”„๋ง์˜ ์ •์„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ ์˜ˆ์ •

โ— ๊ฐœ์ธ์ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ ์€ ๊ฒƒ ์ด๊ธฐ์— ์˜ค๋ฅ˜๊ฐ€ ๋งŽ์„ ์ˆ˜๋„ ์žˆ์Œ

1๏ธโƒฃ @RequestParam

@RequestParam(โ€๊ฐ€์ ธ์˜ฌ ๋ฐ์ดํ„ฐ์˜ ์ด๋ฆ„โ€)[๋ฐ์ดํ„ฐ ํƒ€์ž…][๊ฐ€์ ธ์˜จ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„ ๋ณ€์ˆ˜]

1) ์ •์ƒ ์‹คํ–‰

  • RequestParam Annotaion์€ HttpServletRequest์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค
  • ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ์‹œ ์ „๋‹ฌํ•œ ๊ฐ’์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ 1:1 ๋งตํ•‘ ํ•  ๋•Œ ์‚ฌ์šฉ
  • /classMate?name=โ€minsuโ€์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ’์„ ๋„˜๊ฒจ์ค€๋‹ค
  • Model๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด view๋กœ(์œ„์—์„œ ๋ฐ›์€ minsu)๋ฅผ ๋„˜๊ฒจ์ค€๋‹ค

2) ์—๋Ÿฌ

  • ๊ฐ’์„ ๋„˜๊ฒจ์ฃผ์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค โ†’ ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ default๊ฐ’์„ ์„ค์ •ํ•œ๋‹ค
  • ์ฃผ์†Œ์— ๊ฐ’์„ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด default ๊ฐ’์ธ โ€œโ€๊ฐ€ ๊ฐ’์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค
  • default๊ฐ’์„ ์ฃผ๋ ค๋ฉด required๋Š” false๋กœ ํ•ด์•ผํ•œ๋‹ค

2๏ธโƒฃ ModelAttribute

  • ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ์‹œ ์ „๋‹ฌํ•œ ๊ฐ’์„ ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ๋งคํ•‘ํ•ด์ฃผ๋Š” Annotation
  • /?name=minsu&age=27๋กœ ์š”์ฒญ์„ ํ•˜๋ฉด ๊ฐ๊ฐ์˜ ๊ฐ’์ด ํ•ธ๋“ค๋Ÿฌ์˜ testModel ๊ฐ์ฒด๋กœ ๋ฐ”์ธ๋”ฉ๋œ๋‹ค.
  • RequestParam์„ ์ด์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๋ฐ›๊ธฐ ํž˜๋“ค ๋•Œ ์‚ฌ์šฉ

3๏ธโƒฃ EL(Expression Language) , param, paramValues

  • JSP์˜ ํ‘œํ˜„์‹์€ <%= %>์ด๋‹ค โ†’ ๋„ˆ๋ฌด ์“ฐ๊ธฐ ๊ท€์ฐฎ๋‹ค โ†’ ${ }๋กœ ํ‘œํ˜„ํ•œ๋‹ค ์ด๊ฒƒ์ด EL์ด๋‹ค

1) param

HTML ์ฝ”๋“œ

  • โ€œ๋กœ๊ทธ์ธโ€์ด๋ผ๋Š” submit ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด, ํ…์ŠคํŠธ ๋ฐ•์Šค๋กœ ์ž…๋ ฅ๋ฐ›์€ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ POST(method) ๋ฐฉ์‹์œผ๋กœ login.jsp์— ์ „๋‹ฌํ•œ๋‹ค.

JSP ์ฝ”๋“œ

  • login.jsp ํŽ˜์ด์ง€์—์„œ๋Š” ์ „๋‹ฌ๋ฐ›์€ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ํ™”๋ฉด์— ์ถœ๋ ฅํ•œ๋‹ค.

${param.id} , ${param.pw}

  • param ๊ฐ์ฒด๋Š” EL์˜ ๋‚ด์žฅ ๊ฐ์ฒด์ด๋ฉฐ, ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์–ป์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค. name์ด โ€œidโ€์™€ โ€œpwโ€์— ํ•ด๋‹นํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์–ป์–ด์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, JSP ์Šคํฌ๋ฆฝํŠธ ์š”์†Œ ์•ˆ์˜request.getAttribute(โ€œidโ€)์™€ ๊ฐ™๋‹ค.

2) paramValues

HTML ์ฝ”๋“œ

  • name์ด โ€œidโ€์ธ ์†์„ฑ์ด ๋‘ ๊ฐœ๊ฐ€ ์žˆ๋‹ค

JSP ์ฝ”๋“œ

  • name์— ๊ฐ™์€ ์†์„ฑ์ธ โ€œidโ€๊ฐ€ 2๊ฐœ ์กด์žฌ
  • paramValues ๊ฐ์ฒด๋Š” ๋‹ค์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐ’์„ ๋ฐฐ์—ด๋กœ ๊ฐ€์ ธ์˜จ๋‹ค
  • name=โ€idโ€ ๊ฐ€ 2๊ฐœ ์ด๊ธฐ์— paramValues๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•œ๋‹ค

4๏ธโƒฃ RequestMapping / GetMapping / PostMapping

1) ๊ธฐ๋ณธ

  • method ํ‘œ๊ธฐ๋ฅผ ์•ˆํ•ด์ฃผ๊ณ  ์ฝ”๋“œ๊ฐ€ ์ค„์–ด๋“ค๊ธฐ ๋•Œ๋ฌธ์— GetMapping๊ณผ PostMapping ์‚ฌ์šฉ

2) ์‚ฌ์šฉ์˜ ์ง„์งœ ์ด์œ 

์œ„์˜ ์ฝ”๋“œ๊ฐ™์ด RequestMapping๋„ method ํ‘œ๊ธฐ ์—†์ด ์ฝ”๋“œ๋ฅผ ์งง๊ฒŒ ์“ฐ๊ธฐ ๊ฐ€๋Šฅํ•˜๋‹ค โ†’ ๊ทธ๋Ÿผ ์™œ? GetMapping / PostMapping๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

  1. url ์ค‘๋ณต ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค
  2. ์ฝ”๋“œ์— ์˜๋ฏธ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ช…์‹œ ํ•  ์ˆ˜์žˆ๋‹ค.
  • url ์š”์ฒญ์„ ํ†ตํ•ด ๋ฉ”์„œ๋“œ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์ „์†ก ๋ฐฉ์‹์„ ๋ช…์‹œํ•˜๋ฉด ํ•˜๋‚˜์˜ url๋กœ๋„ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋งคํ•‘์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • /testMapping์˜ ํ•˜๋‚˜์˜ url๋กœ ์ด๋ ‡๊ฒŒ ๋‘ ๊ฐœ์˜ ๋งคํ•‘์ด ๊ฐ€๋Šฅํ•˜๋‹ค. @RequestMapping(โ€œ/testMappingโ€)์œผ๋กœ GET ๋ฐฉ์‹์˜ ์š”์ฒญ์„ ๋ฐ›์•˜๋‹ค๋ฉด POST ๋ฐฉ์‹์˜ ์š”์ฒญ์€ ๋‹ค๋ฅธ url์„ ์จ์•ผํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๋ณด๊ธฐ์—๋„ ์ฝ”๋“œ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ์—๋„ ์ข‹์ง€ ๋ชปํ•˜๋‹ค.ย ๊ฒฐ๋ก ์ ์œผ๋กœ ์ „์†ก ๋ฐฉ์‹์„ ๋ช…์‹œํ•˜๋ฉด url์„ ๊ฒฝ์ œ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

5๏ธโƒฃ URLEncoder,ย URLDecoder

1) ์‚ฌ์šฉ ์ด์œ 

URL์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ทœ์น™์ด ์žˆ๊ณ  ๊ทธ ๊ทœ์น™์— ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์ž๋“ค์ด ์ •ํ•ด์ ธ์žˆ๊ณ  ์ฟ ํ‚ค(Cookie)์™€ ๊ฐ™์ด ํ•œ๊ธ€์„ ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ ํ•œ๊ธ€์„ ASCII๊ฐ’์œผ๋กœ ์ธ์ฝ”๋”ฉํ•ด์•ผํ•œ๋‹ค.

URLEncoder.encode(String encodingString, String charsetName); //์ธ์ฝ”๋”ฉํ•  ๋ฌธ์ž, ์ผ€๋ฆญํ„ฐ์…‹(โ€œUTF-8โ€)

URLDecoder.decode(String decodingString, String charsetName); //์ธ์ฝ”๋”ฉํ•  ๋ฌธ์ž, ์ผ€๋ฆญํ„ฐ์…‹(โ€œUTF-8โ€)

Categories:

Updated:

Leave a comment