์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ๋ผํ๋ผ์ค์๋ง๋
- Java
- ์๋ฐ
- ์ค๋ผํด
- ํ๋ก๊ทธ๋๋ฐ
- database
- ComputerScience
- ์ฑ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๊ฐ๋ฐ
- ํ์ด์ฌ
- ๋ฆฌ์กํธ
- ๋ ์
- ์ํ
- html
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- css
- ์ปดํจํฐ๊ณผํ
- ๋ฐ์ํ
- K๋ฐฐํฐ๋ฆฌ
- ์นํผ๋ธ๋ฆฌ์ฑ
- ๋ง์ผ๋ด๊ฐ์ธ์์๋ค์์ฐ๋ค๋ฉด
- ์ค๋ธ์
- ์นํ์ด์ง๋ง๋ค๊ธฐ
- Python
- JavaScript
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ์ฝ๋ฉ
- ์๋ฐ์คํฌ๋ฆฝํธ
- Today
- Total
JiYoung Dev ๐ฅ
[JSP/Servlet] Server์ Servlet ๊ฐ์ (2023.05.09) ๋ณธ๋ฌธ
WWW = World Wide Web
์ธํฐ๋ท์์์ ํ์ดํผํ ์คํธ ๋ฐฉ์์ผ๋ก ๋ค์ํ ํํ์ ์ ๋ณด๋ฅผ ์ ๊ณต
internet = inter + network
์ ์ธ๊ณ๋ฅผ ์ฐ๊ฒฐํ๋ ํต์ ๋ง
<์ ๋ฆฌ ๋ด์ฉ>
๐ ๋คํธ์ํฌ(network)๋ ๋ฌด์์ผ๊น?
network = net + work
๊ทธ๋ฌผ์ฒ๋ผ ์๋ก ์ฎ์ด์ ์ผํ๋ ๊ฒ
ํต์ ์ฅ๋น๋ค์ด ๊ทธ๋ฌผ๋ง์ฒ๋ผ ์ฐ๊ฒฐ๋์ด ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๋ ํํ
๐ NODE
ํต์ ์ฅ๋น๋ Node๋ผ๊ณ ๋ ํจ
node : ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ ์ปดํจํฐ์ ๊ทธ ์์ ์ํ ์ฅ๋น (ํ๋ธ, ๊ณต์ ๊ธฐ, ๋ผ์ฐํฐ ๋ฑ)
- HUB : ๋ค์์ PC์ ์ฅ์น๋ค์ ๋ฌถ์ด์ LAN ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ ์ฅ์น
- ๋ผ์ฐํฐ : ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ๊ฐ์ฅ ์ ์ ํ ํต์ ํต๋ก๋ฅผ ์ด์ฉํด ์ ์กํด์ฃผ๋ ์ฅ์น
- ๊ณต์ ๊ธฐ : ํ๋์ ์ธํฐ๋ท ๋ผ์ธ์ ๊ณต์ ํด ๋์์ ์ธํฐ๋ท์ ์ ์ํ ์ ์๋๋ก ํ๋ ์ฅ์น
๐ HOST
๋ ธ๋ ์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์๋ ์ปดํจํ ์์คํ ์ ๊ฐ์ถ ๊ธฐ๊ธฐ
ex. ํ๋ธ๋ฆฟ, ์ค๋งํธํฐ, PC ๋ฑ
โ HOST์ ์ข ๋ฅโจ
์๋น์ค๋ฅผ ์์ฒญํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํ๋์ ๋ฐ๋ผ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ก ๋๋ ์ ์์
→ HOST ์ฌ์ด์ ์ ๊ณต๋๋ ์๋น์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ์ธ๋ถํ
1) Client : ์๋น์ค๋ฅผ ์์ฒญํ๊ณ ์ฌ์ฉํ๋ host
2) Server : ์๋น์ค๋ฅผ ์ ๊ณตํ๋ host
๐ WEB ํต์ ๋ฐฉ์
์น์์ ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ฅผ ์ฐ๊ฒฐํ ๋ ์ฌ์ฉํ๋ ๊ท์น
→ HTTP(Hypertext Transfer Protocol)
: ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์ธํฐ๋ท์์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ํ๋กํ ์ฝ
โป ํ๋กํ ์ฝ(protocol) : ์ปดํจํฐ๋ ์๊ฑฐ๋ฆฌ ํต์ ์ฅ๋น ์ฌ์ด์์ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์์๊ณผ ๊ท์น์ ์ฒด๊ณ
์๋ 2๊ฐ์ง๋ ๊ผญ ์๋ฉด ์ข๋ค! (๋ฉด์ )
โ OSI(Open System Interconnection) 7๊ณ์ธต
๊ต์ก ๋ฐ ํ์ค์ฉ
๋คํธ์ํฌ์์ ํต์ ์ด ์ผ์ด๋๋ ๊ณผ์ ์ 7๋จ๊ณ๋ก ๋๋ ๊ฒ
→ ํต์ ์ด ์ผ์ด๋๋ ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ํ์ ํ๊ธฐ์ ์ฉ์ด
โ TCP/IP(Transmission Control Protocol/Internet Protocol) 4๊ณ์ธต
ํ์ค์ฉ
ํ๋กํ ์ฝ ํต์ ๊ณผ์ ์ ์ด์ ์ ๋ง์ถ์ด OSI 7๊ณ์ธต์ ์ข ๋ ๋จ์ํ ์ํจ ๊ฒ
๐ Client์ Server
ํด๋ผ์ด์ธํธ pc์ ์๋ฒ pc๋ ๊ณ ์ ๋์ด ์๋ ๊ฒ์ด ์๋
์ด์ฉํ๋ ์๋น์ค์ ์ข ๋ฅ์ ๋ฐ๋ผ ํด๋ผ์ด์ธํธ๊ฐ ๋ ์๋ ์๊ณ ์๋ฒ๊ฐ ๋ ์๋ ์์
์น์์ ํด๋ผ์ด์ธํธ → ์น ๋ธ๋ผ์ฐ์
์ฐ๋ฆฌ๊ฐ ์ง์ ์๋ฒ์ ์์ฒญํ ์ ์์. ์น๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด์ ์์ฒญํ ์ ์์
์น๋ธ๋ผ์ฐ์
์น ์๋ฒ์ ํต์ ํ์ฌ html, css, js, text, ์ด๋ฏธ์ง ๋ฑ ์น ๋ฆฌ์์ค๋ฅผ ๋ฐ์ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ๊ทธ๋ํฝ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(GUI) ๊ธฐ๋ฐ์ ์ํํธ์จ์ด
์น์์ ์๋ฒ → ์น ์๋ฒ
ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ๋ฉด ์น ์๋ฒ๋ HTML๊ณผ ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ์๋ตํ๋ค.
๐ Web Server
๋ง์ด ์ฌ์ฉํ๋ ์น ์๋ฒ SW : APACHE, NGINX, IIS
IIS๋ ์๋์ฐ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ. ์์ 2๊ฐ์ง๋ ๋ค์ํ ์ด์์ฒด์ ์์ ์ฌ์ฉ ๊ฐ๋ฅ
๐ ์น ์๋ฒ โถ ์ ์ ์น์๋ฒ
HTTP ์๋ฒ(SW)๊ฐ ์๋ ์ปดํจํฐ(HW)๋ก ๊ตฌ์ฑ
์๋ฒ์ ์ ์ฅ๋์ด ์๋ ํ์ผ(๋งค๋ฒ ๊ฐ๊ณตX)์ ํด๋ผ์ด์ธํธ์ ์ ์ก
→ ์๋ตํด์ฃผ๋ ๋ฆฌ์์ค(HTML)์ด ๊ฐ๊ณต์ด ์๋จ (๋ฐ๊ฟ ์ ์์)
์ฆ, ์์ฒญ์ ๋ฐ๊ณ ์๋ตํด์ค ๋ ํ์ผ์ ์์ ํ ์ ์์. ๋ฐ๋์ง ์์
→ ์ ์ ์น์๋ฒ๋ผ๊ณ ํจ
๐ ์๋ฒ ํ๋ก๊ทธ๋จ์ ํ์์ฑ
โ ์ ์ ํ์ด์ง(Static Web Page)
์๋ฒ(์น ์๋ฒ)์ ๋ฏธ๋ฆฌ ์ ์ฅ๋ ํ์ผ(HTMLํ์ผ, ์ด๋ฏธ์ง, Javascript ํ์ผ ๋ฑ)์ด ๊ทธ๋๋ก ์ ๋ฌ๋๋ ์นํ์ด์ง
์ฌ์ฉ์๋ ์๋ฒ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์ง ์๋ ํ ๊ณ ์ ๋ ์น ํ์ด์ง๋ฅผ ๋ณด๊ฒ ๋จ
โ ๋์ ํ์ด์ง(Dynamic Web Page)
์๋ฒ(์น ์๋ฒ)์ ์๋ ๋ฐ์ดํฐ๋ค์ ์คํฌ๋ฆฝํธ์ ์ํด ๊ฐ๊ณต์ฒ๋ฆฌํ ํ ์์ฑ๋์ด ์ ๋ฌ๋๋ ์นํ์ด์ง
์ฌ์ฉ์๋ ์ํฉ, ์๊ฐ, ์์ฒญ ๋ฑ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ์นํ์ด์ง๋ฅผ ๋ณด๊ฒ ๋จ
์น์๋ฒ๋ ์ ์ ํ์ด์ง๋ฅผ ์๋ตํ๋ ๋ฐ์๋ ๋ฌธ์ ๊ฐ ์์
์ ์ ์น์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ํ์ด์ง๋ฅผ ์๋ตํ๋ ค๋ฉด?
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ง๋ HTML ํ์ผ์ ๋ง๋ค์ด์ฃผ๋ ์๋ฒ ํ๋ก๊ทธ๋จ์ด ํ์! >> ์๋ฒ ์ฌ์ด๋ ์คํฌ๋ฆฝํธ ์ธ์ด
HTML ๊ฐ๊ณต์ ํด์ค ์ ์๋ ์๋ฒ ํ๋ก๊ทธ๋จ > ์๋ฒ ์ฌ์ด๋ ์คํฌ๋ฆฝํธ ์ธ์ด
javascript, php, servlets&Jsp, Microsoft .NET ๋ฑ
๐ Servlet
- server (์๋ฒ ์์์ ์๋ํ๋) + Applet (์์ฉ ํ๋ก๊ทธ๋จ)
- Java๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ Web Application Programming ๊ธฐ์
- Client ์์ฒญ์ ๋์ ์ผ๋ก ์๋, ์๋ต์ ๊ฐ๊ณต์ด ์๋ฃ๋ ์ ์ ๋ฌธ์ ํ์์ผ๋ก ์ ๊ณต
๐ Servlet ๊ตฌ์กฐ
โ WAS(Web Application Server)
์น์๋ฒ + ์น์ปจํ ์ด๋
๋์ ์ผ๋ก ์ปจํ ์ธ ๋ฅผ ์์ฑํ์ฌ ์ ๊ณตํ๋ ์๋ฒ
ex. ํฐ์บฃ
โ Web Server
์ ์ ์ธ ์ปจํ ์ธ ๋ฅผ ์ ๊ณตํ๋ ์๋ฒ (๋์ ํ์ด์ง๋ ์ ๋ฌํ์ง ๋ชปํจ)
๋์ ํ์ด์ง์ ๋ํ ์์ฒญ์ ์ปจํ ์ด๋๋ก ์ ๋ฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋๊ฒจ์ฃผ๋ ์ญํ
ํด๋ผ์ด์ธํธ๋ ์ ์ ์น์๋ฒ์๋ง ์ฐ๊ฒฐ๋์ด ์์
โ Web Container
JSP์ Servlet์ ์คํ์ํฌ ์ ์๋ SW
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ง๋ ํ๋ก๊ทธ๋จ์ ์ฐพ์์ ์คํ
โ Program(Servlet)
๋์ ํ์ด์ง๋ฅผ ๊ฐ๊ณต
์๋ธ๋ฆฟ ๋์ ์์
1. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ์์ฒญ
์ ์ ์น์๋ฒ๊ฐ ์์ฒญ์ ๋ฐ์
2. ๋์ ํ์ด์ง๋ฅผ ๋ณด๊ณ ์ถ์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด ์น์ปจํ ์ด๋๋ก ์์ฒญ ์ ๋ฌ
์น์ปจํ ์ด๋ ์์ฒญ ๋ถ์ ํ ์์ฒญ์ ๋ง๋ ํ๋ก๊ทธ๋จ ์์นญ ํ ์คํ
3, 4. ํ์ํ ๋ฐ์ดํฐ๋ DB์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ด
5. ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ก HTML ์์ฑ(servlet)
6. ๋ง๋ค์ด์ง ๋ฌธ์๋ ์ ์ ๋ฆฌ์์ค๊ฐ ๋จ > ์ ์ ์น์๋ฒ๋ก ์ ๋ฌ
7. ์ ์ ์น์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต
ํฌ์ธํธ!!
- ๋์ ์ธ ์์ฒญ์ ์น์ปจํ ์ด๋๊ฐ ๋ฐ๋๋ค.
- ์ค์ ๋ก ์์ฒญ์ ๋ฐ๊ณ ์๋ต์ ํด์ฃผ๋ ์์ด๋ ์ ์ ์น์๋ฒ์ด๋ค.
๐ Servlet์ ํน์ง
- .java ํ์ฅ์๋ฅผ ๊ฐ์ง๋ค.
- Java Multi Thread๋ฅผ ์ด์ฉํ์ฌ ๋์ํ๋ค >> ์๋์ ๋ฉ๋ชจ๋ฆฌ ๋ฉด์์ ํจ์จ์ ์
- ๊ฐ์ฒด์งํฅ์ ์ด๋ค. >> ๋๊ท๋ชจ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ ํฉํจ
- HttpServlet ํด๋์ค๋ฅผ ์์๋ฐ๋๋ค. >> HttpServlet ํด๋์ค๋ฅผ ์์๋ฐ์์ผ๋ง servlet์ ์ญํ ์ ํ ์ ์๋ค.
โ ๋์ ์ผ๋ก ๋ฆฌ์์ค๋ฅผ ์์ฑํ์ฌ ์ ๊ณตํ๊ธฐ ์ํ ๋ฐฉ๋ฒ
1) CGI(Common Gateway Interface)
๊ฐ์ ๋์(ํ๋ก์ธ์ค)์ ํ์ง๋ง ๋จ์ผ ์ฐ๋ ๋์ด๋ฏ๋ก ํ๋ก๊ทธ๋จ์ 2๋ฒ ์คํํด์ผ ํจ.
์ฌ์ฉ์์ ์๋งํผ ํ๋ก๊ทธ๋จ์ ์คํ >> ์ฌ์ฉ์์ ์์ฒญ์ด ๋ง์ผ๋ฉด ํ๋ก๊ทธ๋จ๋น ์์์ ๋ค ํ ๋นํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ ์๋ฒ์ ๋ถํ๊ฐ ํฌ๊ฒ ๊ฐ >> CGI์ ๋จ์
2) WAS(Web Application Server)
์๋ฐ๋ ๋ฉํฐ ์ฐ๋ ๋๊ฐ ๊ฐ๋ฅํจ
์๋ธ๋ฆฟ์ ์๋ฐ๊ธฐ๋ฐ์ด๋ฏ๋ก ๋ฉํฐ ์ฐ๋ ๋๊ฐ ๊ฐ๋ฅํ๊ณ ๋ฉํฐ ์ฐ๋ ๋๊ฐ ๊ฐ๋ฅํ๋ฏ๋ก ์๋ฒ์ ๋ถํ๋ฅผ ์ค์ผ ์ ์์
ํ๋ก๊ทธ๋จ / ํ๋ก์ธ์ค / ์ค๋ ๋
ํ๋ก๊ทธ๋จ(Program)
์ปดํจํฐ์์ ์ด๋ค ์์ ์ ์ํด ์คํํ ์ ์๋ '์ ์ ์ธ ์ํ'์ ํ์ผ
ex. Windows์ exe ํ์ผ
ํ๋ก์ธ์ค(Process)
ํ๋ก๊ทธ๋จ์ด ์คํ๋์ ๋์๊ฐ๊ณ ์๋ ์ํ, ์ปดํจํฐ์์ ์ฐ์์ ์ผ๋ก ์คํ๋๊ณ ์๋ '๋์ ์ธ ์ํ'์ ์ปดํจํฐ ํ๋ก๊ทธ๋จ, ์ด์์ฒด์ ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ ํ์ํ ์์์ ํ ๋น๋ฐ์ ์ํ
์ค๋ ๋(Thread)
ํ๋ก์ธ์ค๊ฐ ํ ๋น ๋ฐ์ ์์์ ์ด์ฉํ๋ ์คํ ๋จ์
ํ๋ก์ธ์ค์ ํน์ ํ ์ํ ๊ฒฝ๋ก์ด์ ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ์ฌ๋ฌ ํ๋ฆ์ ๋จ์
๐ Eclipse 21.3 ๋ฒ์ ผ ์ค์น + tomcat 9.0 ์ค์น
- ์ค์น ๊ฒฝ๋ก์ ํ๊ธ ์์ด์ผ ํจ!
๐ Tomcat ์ค์นํ๊ธฐ
์ค์น ํ ์์ถ ํ๊ธฐ
bin : ํฐ์บฃ ์คํ, ์ข ๋ฃํ๋ ์คํฌ๋ฆฝํธ ํ์ผ
conf : ์๋ฒ ์ ์ฒด ์ค์ ํ์ผ ํด๋ (sever.xml ๋ฑ)
lib : ํฐ์บฃ์ ๊ตฌ๋ํ๋๋ฐ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(jar)
logs : ์๋ฒ ๋ฐ์ ์์ธ์ํฉ ๋ก๊ทธ ์ ์ฅ
temp : ์์์ ์ฅ ํด๋
webapps : ์๋ฒ์์์ ๋์์ํจ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฅ (java)
work : jsp ํ์ผ์ ์๋ธ๋ฆฟ ํํ๋ก ๋ณํํ java ํ์ผ๊ณผ ์ปดํ์ผ๋ class ํ์ผ ์ ์ฅ
๐ Eclipse์์ Tomcat ์ฐ๋ํ๊ธฐ
1. ์ธ์ฝ๋ฉ :utf-8
2. TOMCAT ์๋ฒ ๋ฑ๋ก
Server ํญ์์ ์ ์๋ฒ ์ฐ๊ฒฐ ๋งํฌ ํด๋ฆญ
New Server ์ฐฝ์์ Apache- ์ฐ๊ฒฐํ ์๋ฒ ์ ํ
Tomcat Server ์์
์ค๋ฅ๋ฐ์
์ค๋ผํด port 8080์ผ๋ก ์ค๋ณต๋จ
ํด๊ฒฐ ๋ฐฉ๋ฒ : tomcat ํฌํธ๋ฒํธ ๋ณ๊ฒฝ (ํจ์ฌ ์ฌ์)
Ctrl + S ์ ์ฅ
์๋ฒ ์ฐ๊ฒฐ ์ฑ๊ณต
3. Dynamic Web Project ์์ฑํ๊ธฐ
Context root : ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด๋ฆ(์๋ณ์), URL์์ ์ฌ์ฉ
Context director : ์น ์ฝํ ์ธ ํ์ผ ์ ์ฅํ ์์ ํด๋ ์ด๋ฆ
web-inf ๊ฐ ์ค์
์น์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋ ์ฌ๊ธฐ์ ๋ฃ์ด์ค์ผ ํจ!
4. ์๋ธ๋ฆฟ ์์ฑ
์๋ฐ ํ์ผ์ ๋ฃ์ผ๋ฉด ๋จ
Servlet Class ์ด๋ฆ ์์ฑํ๊ธฐ (์ ๋ ๋ฐ๋ก Finish ๋๋ฅด์ง ์๊ธฐ!)
์ํผํด๋์ค : ๋ถ๋ชจํด๋์ค
URL-Mapping ๊ฐ ์ ํ๊ธฐ
โ URL-Mapping ๋ฐฉ๋ฒ 1) web.xml ํ์ฉ
โ URL-Mapping ๋ฐฉ๋ฒ 2) annotation ํ์ฉ
์ด๋ ธํ ์ด์
- ์ปดํ์ผ์ด๋ ๋ฐฐํฌ, ์คํํ ๋ ์ฐธ์กฐํ ์ ์๋ ์ฃผ์
- ํด๋์ค๋ ํ๋, ๋ฉ์๋์ ๋ํด ๋ถ๊ฐ์ ๋ณด๋ฅผ ๋ฑ๋กํ ์ ์์
- ํ๋ก๊ทธ๋จ์ ์๋ฏธ์ ์ธ ๋ถ๋ถ์ ์ง์ ์ํฅ์ ์ฃผ์ง ์์
์์ ๋ฉ์๋ ์ ํ
์์ ํด๋์ค HttpServlet ์ ๊ธฐ๋ฅ ์ค๋ฒ๋ผ์ด๋ฉ ํ ์ง ์ ํ
์์ฑ์
servlet ์๋ช ์ฃผ๊ธฐ๋ฅผ ์๋ฏธํ๋ ์ฃผ์ ๋ฉ์๋ - ํ์ฌ ์ ํํ ํญ๋ชฉ๋ค
๊ธฐํ. ์น๋ธ๋ผ์ฐ์ ๋ณ๊ฒฝ
์น๋ธ๋ผ์ฐ์ ์คํ ๋จ์ถํค : ctrl + F11
โ HTTP ์ํ์ฝ๋
์์ฒญ๊ณผ ์๋ต์ ํ์ ๋ ์ ๋๋ก ์ฑ๊ณตํ๋ฉด ์ํ์ฝ๋ 200
404 : ํ์ด์ง๋ฅผ ์ฐพ์ ์ ์์ (๊ฒฝ๋ก๊ฐ ์๋ฒ์์ ์กด์ฌํ์ง ์์ ๋) - ์ ๋๋ก ์์ฑํ๋๋ฐ ์ค๋ฅ ๋จ๋ ๊ฒฝ์ฐ.
์ฃผ์ ํ์ธ ๋ถํฐ ์งํ
web.xml ์ ์ฅํ๋ค๊ณ ์ค์๊ฐ์ผ๋ก ์๋ฒ์ ๋ฐ์๋์ง ์์. ์ด๋๋ ์๋ฒ๋ฅผ restartํ๋ฉด ๋จ
๐ ์๋ธ๋ฆฟ ๊ฐ์ฒด ์๋ช ์ฃผ๊ธฐ
์๋ธ๋ฆฟ ๊ฐ์ฒด ์์ฑ๋ถํฐ ์๋ฉธ๊น์ง์ ๊ณผ์
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//@~ : ์ด๋
ธํ
์ด์
(์ฃผ์) >> ์ปดํ์ผ๋ ๋ ํ๋ฒ ํ์ธ์ ํจ!
//@WebServlet : url-mapping์ ํด์ฃผ๋ ์ญํ
@WebServlet("/first")
public class Ex00FirstServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
// ๊ฐ์ฒด์ ์ง๋ ฌํ(์๋ฐ ๋ฐ์ดํธ ํํ๋ก ๋ณํ)
// ์๋ฐ ๋ฐ์ดํธ ํํ๋ฅผ ๋ค์ ๊ฐ์ฒด ํํ๋ก ๋ณํ (์ญ์ง๋ ฌํ)
// ์ง๋ ฌํ ์ญ์ง๋ ฌํ ๊ณผ์ ์์ ํด๋์ค ์์ฒด๊ฐ ๋ณํ์ด ๋ ์ ์์. ๋ฐ๋ผ์ ํด๋์ค์ ๋ฒ์ ผ์ ๊ตฌํํจ.
// ์์ฑ์ : ๊ฐ์ฒด ์์ฑ์ ์ฌ์ฉ
// ์์ฑ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค๊ณ ํด์ ๋ฐ๋ก ์๋ธ๋ฆฟ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์๋!
// ํ์ฌ๋ ๋จ์ ์๋ฐ ๊ฐ์ฒด >> ์์ฒญ๊ณผ ์๋ต์ ํ ์ ์์ >> init ๋ฉ์๋๋ฅผ ํธ์ถํด์ผ ํจ
// ์๋ธ๋ฆฟ๊ฐ์ฒด >> ํต์ ํ ์ ์๋ค๋ ์๋ฏธ (์์ฒญ, ์๋ต)
public Ex00FirstServlet() {
System.out.println("์์ฑ์ ํธ์ถ!");
}
// init ๋ฉ์๋ : ๊ฐ์ฒด๊ฐ ์๋ธ๋ฆฟ ์ญํ ์ ํ ์ ์๋๋ก ์ด๊ธฐํํด์ฃผ๋ ์ญํ !
// ๋น์ฉ์ด ๋ง์ด ๋๋ ์์
(๋ฌด๊ฑฐ์ด ์์
)
// ์๋ฒ๋ก ์์ฒญ์ด ๋ค์ด์ฌ๋๋ง๋ค ์ด ์์
์ ํด์ค์ผ ํ๋ค๋ฉด ๊ต์ฅํ ๋นํจ์จ์ ์
// ์ต์ด๋ก ์์ฒญ์ด ๋ค์ด์ค๋ฉด ๊ฐ์ฒด ์์ฑ >> init ๋ฉ์๋ ํธ์ถ ํ ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ก ์ด๊ธฐํ
// ๊ทธ ๋ค์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด ์ด๋ฏธ ์์ฑ๋์ด ์๋ ๊ฐ์ฒด๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํจ
public void init(ServletConfig config) throws ServletException {
System.out.println("init ํธ์ถ!");
}
// destroy ๋ฉ์๋ : ๋ง๋ค์ด์ง ์๋ธ๋ฆฟ ๊ฐ์ฒด๋ฅผ ์๋ฉธ์ํด
// ์๋ฒ๊ฐ ์ข
๋ฃ ๋๊ฑฐ๋ ์ฌ์์ ํ ๋ ํ์ฉ๋จ
// ์ด ๋ฉ์๋๊ฐ ํธ์ถ๋๊ณ ๋ ๋ค์ ์์ฒญ์ด ๋ค์ด์ค๋ ๊ฒฝ์ฐ์๋ ๋ค์ ๊ฐ์ฒด ์์ฑํ๊ณ init ๋ฉ์๋๋ฅผ ํธ์ถํจ
public void destroy() {
System.out.println("destroy ํธ์ถ!");
}
// service ๋ฉ์๋ : ์ฌ์ฉ์์ ์์ฒญ ์ฒ๋ฆฌ & ์๋ตํ๋ ๊ธฐ๋ฅ
// ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ service์ ์์ฑ
// **์ฌ์ฉ์๊ฐ ์์ฒญํ ๋ ์์ฒญํ๋ ๋ฐฉ๋ฒ์ด ์์ >> http ์์ฒญ ๋ฉ์๋
// **๋ํ์ ์ธ ์์ฒญ ๋ฐฉ๋ฒ : *GET, *POST, DELETE(์ญ์ ), PATCH(์์ ), PUT(์์ )
// GET(์กฐํ), POST(์ฝ์
) >> ์ฌ์ฉ์๊ฐ ์์ฒญํ ๋ ๋ฌด์จ ์์ฒญ์ ํ๋์ง ์ ํํ๊ฒ ๊ธฐ์
ํ์!
// RESTAPI, RESTFULL
// 1. ๋ชจ๋ ์์ฒญ์ service์์ ๋ฐ์
// 2. GET/POST(์์ฒญ ๋ฉ์๋)์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํ๊ณ ์ถ์ ๊ฒฝ์ฐ์๋
// service๊ฐ doGET ํน์ doPOST ๋ฉ์๋๊ฐ ํธ์ถ๋๋๋ก ํ ์ ์์
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("service ํธ์ถ!");
super.service(request, response);
}
// http ์์ฒญ ๋ฉ์๋๊ฐ GET์ผ ๊ฒฝ์ฐ ํธ์ถ
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet ํธ์ถ!");
}
// http ์์ฒญ ๋ฉ์๋๊ฐ POST์ธ ๊ฒฝ์ฐ ํธ์ถ
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doPost ํธ์ถ!");
}
}
์์๊ฐ ์ค์ํ๋ค
get์ด ๊ธฐ๋ณธ๊ฐ >> get ๋ฐฉ์์ผ๋ก ํธ์ถ๋ ๊ฒ
์๋ฐ ๊ฐ์ฒด ๋จ์์๋ ์ํ์์ service๋ง ํธ์ถ๋จ
์๋ฒ ์ค์ง
์๋ธ๋ฆฟ ๊ฐ์ฒด๋ ์ฌ๋ผ์ง
contextroot : path - ์ฐ๋ฆฌ๊ฐ ์ง์ ํ ๊ฒฝ๋ก๋ก ์๋ฒ ๊ตฌ๋ถํ๊ธฐ ์ํ ๊ฐ
ํ๋ก์ ํธ์ contextroot๊ฐ ๊ฒน์น๋ฉด ์๋ฒ ์คํ์ด ์๋จ >>
'full stack > Back-End' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JSP/Servlet] Scope (2023.05.18~19) (0) | 2023.05.19 |
---|---|
[JSP/Servlet] ์ ์ธ๋ฌธ, ์ง์์, ๋ด์ฅ๊ฐ์ฒด (2023.05.16) (0) | 2023.05.16 |
[JSP/Servlet] JSP ํ์์ฑ๊ณผ ํน์ง, ๊ตฌ์ฑ์์ (2023.05.15) (0) | 2023.05.15 |
[JSP/Servlet] ๋ฐ์ดํฐ ์ ์ก GET/POST(2023.05.12) (0) | 2023.05.12 |
[JSP/Servlet] Servlet ๊ฐ์, ๋ฐ์ดํฐ ์ ์ก (2023.05.10) (0) | 2023.05.12 |