Spring ๊ธฐ์ด - 4
๐ป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๋ฅผ ์ฌ์ฉํ๋๊ฐ?
- url ์ค๋ณต ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค
- ์ฝ๋์ ์๋ฏธ๋ฅผ ๋ช ํํ๊ฒ ๋ช ์ ํ ์์๋ค.
- 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โ)
Leave a comment