๐Ÿ’ป JAVA_

JAVA#25 _ Servlet

CodeLoge 2025. 2. 23. 01:38

โœด๏ธŽ 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์œผ๋กœ ๋„˜์–ด๊ฐˆ์ˆ˜๋ก ์ปค์ง(๊ธธ์–ด์ง)