<๊ฐ์>
1. ํด๋ผ์ด์ธํธ์์ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ฒ์์ ํด๋น ์์ฒญ์ ๋ง๋ ์๋น์ค๋ฅผ ์ด๋ป๊ฒ ์ ๊ณตํ๋์ง ๊ทธ ๊ณผ์ ์ ๋ํด ์์ธํ ๋ค๋ฃธ
2. ์์ฒญ๋ฌธ ์ฟผ๋ฆฌ๋ฅผ ์์ธํ ์ดํด๋ณด๊ณ , ์์ฒญ์์ ๊ฐ์ด ๋ณด๋ด์จ ๊ฐ์ ์ฌ์ฉํ๋ ์๋ฐ ๋ช ๋ น์ด์ ๋ํด ๋ฐฐ์
1. ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ํธ์์ฉ ๊ณผ์
(1) ์๋ฒ ์์ฒญ์ด ํฌํธ์ ๋ค์ด์ค๊ธฐ ๊น์ง
Binding : ํ๋์ ํฌํธ๊ฐ ํ๋์ ์๋ฒ์ ์ฐ๊ฒฐ๋์ด ์๋ ์ํ๋ฅผ ๋งํ๋ค. (์๋ฒ์ ํฌํธ๋ 1 ๋ 1 ์ฐ๊ฒฐ๋ง ๊ฐ๋ฅํ๋ค.)
listening : ํ๋์ ์๋ฒ๊ฐ ํฌํธ์์ ์์ฒญ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ์ํ๋ฅผ ๋งํ๋ค.
ํ์ผ ์๋ฒ๋ ํ์ผ ์๋น์ค ์ ๊ณต, ์ด๋ฉ์ผ ์๋ฒ๋ ์ด๋ฉ์ผ ์๋น์ค ์ ๊ณต,
์น ์๋ฒ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด์ ๋ฐ์ ์ ์๋ ๋ชจ๋ ์๋น์ค๋ฅผ ์ ๊ณต
** WAS (Web Application Service)๋?
์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์๋น์ค ํ๋ค?
Application == Program ๊ฐ์ ๋ง
์๋ฒ์ ํ๋ก๊ทธ๋จ์ ์ค์นํ๊ณ ํด๋ผ์ด์ธํธ๊ฐ ์๊ฒฉ์ผ๋ก ํด๋น ํ๋ก๊ทธ๋จ ์ด์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ์๋น์ค
์๋ ์๋ ์ปดํจํฐ์ ์ผ์ผํ ํ๋ก๊ทธ๋จ ์ค์น. ๊ทธ๋์ ์ ๋ฐ์ดํธ ์์ ๋ ๋ชจ๋ ์ปดํจํฐ ์ผ์ผํ ๋ค ํด์ค์ผ ํ์.
๊ทผ๋ฐ ์๋ฒ์ ํ๋ก๊ทธ๋จ์ ์ค์นํ๋ฉด ์ ๋ฐ์ดํธ๋ฅผ ์๋ฒ ๋ฑ 1๊ตฐ๋ฐ๋ง ํ๋ฉด ๋ผ์ ๊ฒฝ์ ์ฑ, ํจ์จ์ฑ์ด ์ฌ๋ผ๊ฐ.
1. ๋ธ๋ผ์ฐ์ ์์ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋. (ex - www.fastcampus.co.kr/event/list)
2. ํฐ์บฃ 8080 port(๊ธฐ๋ณธ ๊ฐ)์ ํตํด ์์ฒญ์ด ์๋ฒ๋ก ์ ๋ฌ.
3. ์๋ฒ์๋ ์ผ์ ํ ์ ์๋ ์ฌ๋ฌ ๊ฐ์ Thread๊ฐ ์์ (์ด Thread์ ๋ฌถ์์ Thread pool ์ด๋ผ๊ณ ํจ.)
4. Connector: ๋ธ๋ผ์ฐ์ ์์ ์์ฒญ์ ๋ณด๋ผ ๋ ์ด๋ค ํ๋กํ ์ฝ์ ์ผ๋์ ๋ฐ๋ผ์ ์ฌ์ฉํ Connector๊ฐ ๋ฌ๋ผ์ง.
(HTTP 1.1, HTTP 2.0 ๋ฑ๋ฑ์ด protocol์ ์ข ๋ฅ์.)
5. ๋ง๋ Connect ์ฐ๊ฒฐ๋๋ฉด ์๋น์ค๋ฅผ ์ฒ๋ฆฌํ๋ ์์ง์ผ๋ก ๋์ด์ด.
6. ์์ง์๋ ํ๋ ํน์ ์ฌ๋ฌ ๊ฐ์ Host๊ฐ ์กด์ฌํ๋ค. Host๊ฐ ํฐ ํ์ ์ฃผ์์ด๋ค.
(์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ www.fastcampus.co.kr/event/list ์ด๋ฏ๋ก www.fastcampus.co.kr์ธ host๋ก ์ด๋ํ๋ค.)
7. ๋ Host ์์๋ ์ฌ๋ฌ ๊ฐ์ Context๊ฐ ์๋ค. Context ํ๋ ํ๋๊ฐ ํ๋์ WepApp์ด๋ค.
(์ฐ๋ฆฌ๊ฐ ๋ง๋ Spring project, ์ฆ ch2 ์์ฒด๊ฐ Context์ ์ํ๋ค.)
8. Context ์์๋ ๋ ์ฌ๋ฌ ๊ฐ์ Servlet์ด ์๋ค. Servlet์ด๋ ์์ ํ๋ก๊ทธ๋จ์ ๋งํ๋ค.
(Controller๊ฐ Servlet์ ์ํ๋ค.)
์์ฒญ์ ๋ง๋ Host > Context > servelt์ผ๋ก ๊ฐ์ ์ผ ์ฒ๋ฆฌ๊ฐ ๋๋ค.
9. ์ฒ๋ฆฌ๋ ๋ด์ฉ์ ๋ค์ ๋ธ๋ผ์ฐ์ ๋ก ๋ณด๋ด์ ธ ํด๋ผ์ด์ธํธ์๊ฒ ์ค๋ค.
2. ์คํธ๋ง ์ฟผ๋ฆฌ ์ด์ฉํ๋ ์๋ฐ ๋ช ๋ น์ด
์คํธ๋ง ์ฟผ๋ฆฌ๋ ์ด๋ฆ ์ฒ๋ผ ๋ชจ๋ name๊ณผ value๊ฐ String์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
๋ฐ๋ผ์ int, double๋ฑ์ผ๋ก ์ธ๋ ค๋ฉด ํ ๋ณํ ํด์ค์ผ ํ๋ค.
=์ name๊ณผ value์ ๊ตฌ๋ถ์์ด๊ณ &๋ ํ๋์ ๋ฌธ์ฅ์ ๋ํ ๊ตฌ๋ถ์์ด๋ค.
.getParameter("name")์ name์ ๋์ํ๋ value๋ฅผ ๊ฐ์ ธ์จ๋ค.
Enumeratuin์ Iterator์ old ๋ฒ์ ผ์ด๋ค. ๋ฐ๋ณต์์ ๊ฐ์ ์ญํ ์ ํ๋ค.
๋ฐ๋ผ์,
Enumeration enum = request.getParameterNames();
// enum์ด๋ ์ผ์ข
์ ๋ฐ๋ณต์๊ฐ Name๋ค์ value๋ฅผ ์ํ
Map paramMap = request.getParameterMap();
// name๊ณผ value๋ฅผ ๊ฐ๊ฐ key ์ value์ Map ํํ๋ก ๋ง๋ค์ด์ ๋ฐํํ๋ค.
ํด๋น ๊ฒฝ์ฐ์ ๊ฐ์ด year๋ ๊ฐ์ name์ ์ฌ๋ฌ ๊ฐ์ value๊ฐ ๋ค์ด๊ฐ ๊ฒฝ์ฐ,
request.getParameterValues("name");์ name์ ๋ค์ด๊ฐ ์ฌ๋ฌ ๊ฐ์ value๋ค์ ์ฐจ๋ก๋๋ก ๋ฐฐ์ด๋ก ์ ๋ฆฌํ์ฌ ๋ฐํํ๋ค.