JAVA#25 _ Servlet
โด๏ธ Servlet : ๊ณต๋ถ๋ฅผ ํ ์ฌ๋๊ณผ ์ํ ์ฌ๋์ผ๋ก Backend๊ฐ ๊ฒฐ์ ๋จ!! ๊ทธ๋๊น ์ด์ฌํ ํ์!!!!!
• .java๋ก ๋๋จ → Class ํ์ผ์ ํ ์ข ๋ฅ
• Not POJO → ์ง๊ธ๊น์ง ์จ์จ๊ฒ POJO (Plain Old Java Object)
• Servlet์ HttpServlet์ ์์๋ฐ์์ ๊ตฌํํ๊ธฐ ๋๋ฌธ์ notPOJO
→ ์์์ ๋ฐ์ผ๋ ค๋ฉด Jakarta ์ํฌํธ๊ฐ ํ์ํ๊ณ , ์๋์ผ๋ก ๋ค์ด๊ฐ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์ค์ ์ ํ์ ์์
• ์๋ฒ๋ฅผ ๊ตฌํํ ๋์ ํ์ฉํ๋ ํด๋์ค ํ์ผ๋ก, ์๋ธ๋ฆฟ์ ๊ธฐ์ตํด์ผ ์๋ฒ๊ฐ ๋์๊ฐ
• ์๋ฒ์์๋ ๊ธฐ๋ณธ ์์ฑ์๋ก๋ง ๊ฐ์ฒด๋ฅผ ์์ฑ ๋ฐ ๊ด๋ฆฌํ์ง๋ง ์์ธ๋ ์กด์ฌํจ
• ๋ฐ์ดํฐ ์ ์ก(์์ฒญ) ๋ฐฉ์
GET | POST |
URL ์ฌ์ฉ | ํค๋๋ฅผ ์ฌ์ฉ |
๋ณด์ ์ทจ์ฝ | GET๋ณด๋จ ๋์(๋ฌด์ ์ ์๋! ํ์ทจ ๊ฐ๋ฅ!) |
๋ฐ์ดํฐ ์ ์ ํ | ๋ฐ์ดํฐ ์ ์ ํ X |
URL๋ก ์นํฐ ํ์ฐจ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ ๊ฒ ์ฒ๋ผ | ๋ก๊ทธ์ธํ๋ฉด naver.com์ผ๋ก ๋์๊ฐ๋ ๊ฒ |
CRUD ์ค R์ ๋ง์ด ์ฌ์ฉ | CRUD ์ค C U D๋ฅผ ๊ตฌํํ ๋ ๋ง์ด ์ฌ์ฉ |
• <form>์ ์ฌ์ฉํ ๋ ์ค์ ์ ๋ฐ๋ก ์ํ๋ฉด "GET"์ด default๊ฐ
๋๋ถ๋ถ์ ๊ฐ๋ฐ์๋ค์ด method = "POST"์ ๊ฐ์ด ๋๋ฌธ์๋ก ์ฌ์ฉ
• doGet์ด๋ doPOST ๊ฐ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด "๊ฐ์ฒด" ์ฆ, ์ฃผ์ฒด ์ฃผ์ด๊ฐ ํ์ํจ
→ annotation @Webservlet์ ํตํด ํ ์ ์์ผ๋ฉฐ New๋ฅผ ์๋ฒ๊ฐ ํด์ค
Webservlet์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ!
• ์ฌ์ฉ์๊ฐ View์์ ์ ๋ฌํ ์ ๋ณด๋ request ๋ฉ์๋๋ฅผ ํตํด ๊ฐ์ ธ์ฌ ์ ์์
๋ฌธ์์ด๋ก ์ค๊ธฐ ๋๋ฌธ์ Integer.parseInt์ ๊ฐ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ์ ์๋ก ๋ณํํด์ผํจ
• Response๋ ์๋ต์ ๋ณด๋ก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํด์ค
• ์น ํ์ด์ง ๊ตฌ๋ ์ค
→ 400๋ ์๋ฌ๋ฅผ ๋ง๋๋ฉด ํด๋ผ์ด์ธํธ์ ์ค๋ฅ
→ 500๋ ์๋ฌ๋ฅผ ๋ง๋๋ฉด ์ฌ์ฉ์๋ ๋ฌธ์ ๊ฐ ์์ง๋ง ์๋ฒ์ ์ค๋ฅ๊ฐ ์์
• Servlet์ ๋ก์ง์ ์๊ฐ์ง๊ณ ์ถ์ดํจ → Bean ํ์ผ์ ๋ฐ๋ก ๋ง๋ค๋ฉฐ, ๋ก์ง์ ๋ด์ ์์๋ก ์ฌ์ฉ
• JSP๋ก ๋ง๋ ํ์ผ์ด ๊ฒฐ๊ตญ์ .java๋ก ์ ์ฅ
.jsp → compile → .java → Servlet
์๋ Servlet์ ํด์ผํ์ง๋ง java์์์ HTML์ ์ฐ๊ธฐ ํ๋ค์ด jsp๋ฅผ ์ฐ๊ฒ ๋๋ฉฐ ๊ทธ๊ฒ Servlet์ด ๋จ
• ์ง์์ด์์ import๋ฅผ ํ ์ ์์
import = "java.util.ArrayList"์ ๊ฐ์ ํ์์ผ๋ก ์ฌ์ฉ
• ์น์์๋ new๋ฅผ ์ ๊ฒ ์ธ์๋ก ์ข์ ์ฝ๋๊ฐ ๋จ!
๋ฉค๋ฒ๋ณ์๋ฅผ ์จ์ผํ๊ธฐ ๋๋ฌธ์ new๋ฅผ ํด์ผํ์ง๋ง ์ ๊ฒ ์ธ์๋ก ์ข๋ค!
• ์ ์ธํ์ง ์์๋ ์ฌ์ฉํ ์ ์๋ JSP ๋ด์ฅ ๊ฐ์ฒด
โ Request
โก Response
โข Out
โฃ Session
โค Application
→ Request : ์์ฒญ
: ๋ค์ request๋ฅผ. ํ๋ฉด ์ด์ ์ request๊ฐ ์ฌ๋ผ์ง!
→ Session : ๋ธ๋ผ์ฐ์
: ๋ค์ ์์ฒญ์ ํ๋๋ผ๋ ๊ฐ์ ๋ธ๋ผ์ฐ์ ๊ธฐ ๋๋ฌธ์ ์ ๋ณด๊ฐ ๋จ์์์
: ์์ฒญ์ด ๊ณ์ ๋๋๋ผ๋, ๋ฐ์ดํฐ๋ฅผ ๊ณ์ ์ ์งํด์ผํ ๋ ์ฌ์ฉ
: ๋ฐฐ์ด๊ธ๋ ๋ค๊ณ ๋ค๋ ์ ์์
: ๋ธ๋ผ์ฐ์ ๋ฅผ ์๋ซ์ผ๋ฉด ์ ๋ณด๊ฐ ๋จ์์์ง๋ง 30๋ถ์ด ์ง๋๋ฉด ์ฌ๋ผ์ง๋ ๊ฒ LIKE ์ํ ๋ก๊ทธ์ธ ์ฐ์ฅ
Ex) ๋ก๊ทธ์ธ ์ ๋ณด, ์ฅ๋ฐ๊ตฌ๋
→ Application : ์๋ฒ
: ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ์ ์ฅ
Ex) ๊ด๊ณ 7์ผ๊ฐ ์๋ณด๊ธฐ
์ ํ์ดํ 3๊ฐ์ ์ ํจ ๋ฒ์๊ฐ ๋ค๋ฅด๋ฉฐ, Application์ผ๋ก ๋์ด๊ฐ์๋ก ์ปค์ง(๊ธธ์ด์ง)