#๏ธโฃ1๏ธโฃ Annotation์ ์ด์ฉํ URL๋งคํ
Annotation ๊ด๋ จ: https://bangu4.tistory.com/199
์ด๋ ๊ฒ Annotation์ ์ฌ์ฉํด์, ๋งคํ ์ ๋ณด๋ฅผ ์ ๋ฌ/์ ์ฅํ ์ ์๋ค๋ ๊ฒ์ ์ค์ํ๋ค.
Annotation์ ์ฌ์ฉํ๊ธฐ ์ํด์๋
web.xml ํ์ผ์ <metadata-complete=”true”> ๋ถ๋ถ์, <metadata-complete=”false”>๋ก ๋ฐ๊พธ์ด์ผ ํ๋ค.
์ด ๋ถ๋ถ์ด ๋ฌด์จ ์๋ฏธ ์ด๋๋ฉด, ์ฐ๋ฆฌ๊ฐ mapping ์ ๋ณด๋ฅผ ์ค์ ํ ๋, xml๋ก๋ ์ค์ ํ ์๋ ์๊ณ annotation์ผ๋ก ํ ์๋ ์๋๋ฐ,
<metadata-complete=”true”> ์ด๋ ๊ฒ ๋๋ฉด “๋ชจ๋ ์ค์ ์ด xml์ ์๋ค” ๋ผ๊ณ ํ๊ฒ ๋๋ ๊ฒ์ด๊ณ ,
<metadata-complete=”false”> ์ด๋ ๊ฒ ๋๋ฉด “์ฌ๊ธฐ ์ธ์๋ ์ด๋ ธํ ์ด์ ์ผ๋ก ์ค์ ํ๊ฒ ์์ผ๋ ์ฐพ์๋ด๋ผ” ๋ผ๋ ์๋ฏธ์ด๋ค.
์ด๋ ๊ฒ, mapping์ 2๊ฐ์ง ๋ฐฉ์์ผ๋ก ํ ์ ์๋ค๋ ๊ฒ์ ์ ๊ฒ ๋์๋ค. ์ด๋ค ๋ฐฉ์์ด ๋ ์ข์๊น?
Annotation์ ์ฌ์ฉํ๋ ๋ฐฉ์์ด ์ข๋ค. ์ฝ๋ฉ๋์ด ์ ์ด์ ์ข๊ธฐ๋ ํ๋ฐ,
๊ธฐ์ ํ ์ฑ ๊ฐ์ ๊ฒฝ์ฐ ์ฌ๋ฌ ๋ช ์ด ๋ง๋ค๊ธฐ ๋๋ฌธ์, ์๋ก ์์ผ์ xml์ ์ ๊ทผํ๋ ค๋ ๊ฒ๋ณด๋ค ๋ถ๋ฆฌ๋์ด์ ์ ๋ฌด๋ฅผ ๋๋์ด ํ๋ฉด ๋์ฑ ์ข๋ค.
๋ง์ฝ xml๋ก ์ฒ๋ฆฌํ๋ค๋ฉด ๋ชจ๋ ์ด ๊ณต์ ํ์ผ์ ์ ๊ทผํ๋ ค๊ณ ํ ๊ฒ์ด๋ค.
ํ์ง๋ง Annotation์ ์ฌ์ฉํ๋ฉด ๊ฐ์์ ์ผ์ ๊ฐ์ ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ ์ข๋ค.
#๏ธโฃ2๏ธโฃ Servlet ์ถ๋ ฅ ํ์์ ์ดํด
Html์์๋ markup ์ธ์ด๋ฅผ ํตํด์ ํ๋ฉด์ rendering ๋๋ ๊ฒ์ด๋ค.
๋ธ๋ผ์ฐ์ ๋ ์์์ ์ผ๋ก ํด์ํ๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํด์ผ ํ ๊น?
์ด๋ค ๋ด์ฉ์ Clientํํ ๋ณด๋ผ ๋์๋, ๋ณด๋ด๋ ๊ฒ์ด ์ด๋ค ๋ฌธ์์ธ์ง๋ฅผ ๋ฐํ์ฃผ๋ ๊ฒ์ด ์ค์ํ๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ์์์ ์ผ๋ก ํด์ํ๊ฒ ๋๋ค.
์๋ฌด๊ฒ๋ ์๋ ค์ฃผ์ง ์์ ๋, edge ๋ธ๋ผ์ฐ์ ๋ html ๋ก ํด์ํ๊ณ , chrome ๋ธ๋ผ์ฐ์ ๋ text๋ก ํด์ํ๋ค.
#๏ธโฃ3๏ธโฃ Servlet ์น ํ๋ก๊ทธ๋๋ฐ, ํ๊ธ๊ณผ ์ฝํ ์ธ ํ์ ์ถ๋ ฅํ๊ธฐ
ํ๊ธ์ด ๊นจ์ง๋ ์ด์ , ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ผ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์น ์๋ฒ๋ ISO-8859-1์ด๋ผ๋ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
์ด๋ ๊ฒ ์ ๋ฌ๋๋ฉด ํด๋ผ์ด์ธํธ๋ 1byte์ฉ ์ชผ๊ฐ์ ธ์ ๋ฐ์์ง๊ธฐ ๋๋ฌธ์, ๋ฌผ์ํ๊ฐ ๋์ค๊ฒ ๋๋ค.
ํ๊ธ ํ๋๋ฅผ 2byte์ฉ ๋ฌถ์ด์ ์ ๋ฌํด์ผ ํ๋๋ฐ, ISO-8859-1๋ฐฉ์์ 1byte์ฉ ๋ณด๋ธ๋ค.
๊ทธ๋์, ์น์๋ฒ๊ฐ 2byte์ฉ ๋ฌถ์ด์ ์ ๋ฌํ๋ UTF-8 ์ธ์ฝ๋ฉ ๋ฐฉ์์ ์ฌ์ฉํด์ ๋ณด๋ด๋ฉด,
'ํด๋ผ์ด์ธํธ๋ ๋ค๋ฅธ ์ธ์ฝ๋ฉ ๋ฐฉ์์ธ์ง๋ผ “๋พฑ์๋ฟ” ์ด๋ฐ ์์ผ๋ก ๋ณด์ด๊ฒ ๋๋ค.
์ธํฐ๋ท ์ต์คํ๋ก๋ฌ ๊ฐ์ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ์ฐํด๋ฆญ ํ๋ฉด์ ์ด๋ค ์ธ์ฝ๋ฉ์ ์ธ์ง ๊ณ ๋ฅผ ์ ์๋๋ฐ,
๊ธฐ๋ณธ์ ์ผ๋ก “ํ๊ตญ์ด”๋ผ๋ ๊ฒ์ผ๋ก ๋์ด์๋ค. ๊ทผ๋ฐ UTF-8๋ก ๋ฐ๊พธ๋ฉด ์ ์์ ์ผ๋ก ํ๊ธ์ด ์ ๋ณด์ธ๋ค.
์ฆ ๋ธ๋ผ์ฐ์ ์ ์ธ์ฝ๋ฉ ๋ฐฉ์๋ง ์ ๋๋ก ์ ๋๋ค๋ฉด, ์ ๊นจ์ง ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
“๋ด๊ฐ ์ง๊ธ utf๋ก ๋ณด๋ผ๊ฑด๋ฐ, ํ๊ธ ์ ์์ ์ผ๋ก ๋ณด๋ผ ๊ฑด๋ฐ, ํ๊ธ ํด์ํ ์ ์๋ ์ฌ๋ฌ ์ฝ๋ ํ ์ด๋ธ ์ค์์,
utf๋ก ์ฝ์ด์ผ ๋ผ ํ๋ ๊ฒ์ ์ฌ์ด ์ฃผ๋ฉด ๋๋ค.”
#๏ธโฃ4๏ธโฃ GET์์ฒญ๊ณผ ์ฟผ๋ฆฌ ์คํธ๋ง
์ฌ์ฉ์์ ์ ๋ ฅ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ฒ์ธ๊ฐ?
์ฌ์ฉ์ ์ ๋ ฅ์ด๋ผ๊ณ ํ๋ ๊ฒ์ ๋ฌด์์ธ๊ฐ๋ฅผ ์์ฒญํ ๋, ์์ฒญํ๋ ๊ณผ์ ์์ ์ ๋ ฅ์ด ์ด๋ฃจ์ด์ง๋ค.
๊ทธ๋์ ์ ๋ ฅ๊ณผ ์์ฒญ์ ํ๋๋ก ์ด๋ฃจ์ด์ ธ ์๋ค๊ณ ๋ณผ ์ ์๋ค.
http://localhost/hello?cnt=3 ?cnt=3์ Query String์ด๋ผ๊ณ ํ๋ค.
์ด ์ดํ์๋ ์ “cnt”๋ผ๋ ๊ฐ์ ๋ฐ๋์ ๋ฐ๊ฒ ๋์ด์๋ค.
์ด ๋ถ๋ถ์ ํด๋นํ๋ ์ฟผ๋ฆฌ ์คํธ๋ง์ด ์ ๋ฌ๋์ง ์์ผ๋ฉด ์๋ฌ๊ฐ ๋๋ค(Error code: 500).
#๏ธโฃ5๏ธโฃ GET์์ฒญ๊ณผ ์ฟผ๋ฆฌ ์คํธ๋ง- ๊ธฐ๋ณธ๊ฐ ์ฌ์ฉํ๊ธฐ
์ฟผ๋ฆฌ ์คํธ๋ง์ผ๋ก cnt ๊ฐ์ด ์ ์ฃผ์ด์ง ๋, ๋ํดํธ ๊ฐ์ผ๋ก ์ค๋ฅ๊ฐ ์๋๊ฒ๋ ํ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผํ ๊น?
์๋ 4๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ๋ณด๋ฉด, ์ด๋ป๊ฒ cnt ๊ฐ์ด ์ฒ๋ฆฌ๋ ๊น?
http://.../hello?cnt=3 | “3” |
http://.../hello?cnt= | “” |
http://.../hello? | Null |
http://.../hello | null |
๊ทธ๋์ ์์๋ณ์๋ฅผ ์ฌ์ฉํด์ null์ฒดํฌ์ ๋น๋ฌธ์์ด ์ฒดํฌ๋ฅผ ํด์ผ ํ๋ค.
( ์์ ๋ณ์๋ฅผ ์ธ ๋, temp ๋ณด๋ค ๊ธฐ์กด ๋ณ์ ์ด๋ฆ๋ช ์ ์ธ๋๋ฐ๋ฅผ ๋ถ์ธ ํํ๋ก ์ฐ์!)
์ฃผ์๋ฅผ, hyperlink ํตํด์ ์ ๋ฌํ ๋ ์ด๋ ๊ฒ html ์์ ์์ ์ ํ๋ค.
'Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
IOC ์ปจํ ์ด๋ (0) | 2022.08.23 |
---|---|
Servelt์ด ๋๋์ฒด ๋ญ์ฃ ? (0) | 2022.08.14 |
[์นดํ ๊ณ ๋ฆฌ ์๊ฐ] Spring ๊ณต๋ถ๋ฅผ ํ๊ธฐ ์ ์์์ผ ํ๋ ๊ฒ! #๏ธโฃJSP #๏ธโฃ์๋ธ๋ฆฟ #๏ธโฃ๋ด๋ ์ฒ๋ ๊ฐ์๐ (0) | 2022.08.14 |
์คํ๋ง ๊ณต๋ถ#1_์ ํ (0) | 2022.06.28 |
๋งฅ๋ถ Java ์ค์น, ์ดํด๋ฆฝ์ค ์ค์น. (0) | 2022.06.22 |
๋๊ธ