๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
FOR SW ENGINEER๐Ÿ‘ฉ‍๐Ÿ’ป/JSP

JSP - Servlet

by ์”จ๋‹ˆ 2021. 12. 10.
728x90

Servlet

์„œ๋ธ”๋ฆฟ์€ JSPํ‘œ์ค€์ด ๋‚˜์˜ค๊ธฐ ์ „ ๋งŒ๋“ค์–ด์ง„ ํ‘œ์ค€์œผ๋กœ, ์ž๋ฐ”๋กœ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ๋‹ค.

์„œ๋ธ”๋ฆฟ์„ ์ด์šฉํ•˜๋ฉด ์ž๋ฐ” ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋œ๋‹ค.

 

<์„œ๋ธ”๋ฆฟ ๊ฐœ๋ฐœ๊ณผ์ •>

1. ์„œ๋ธ”๋ฆฟ ๊ทœ์•ฝ์— ๋”ฐ๋ผ ์ž๋ฐ” ์ฝ”๋“œ ์ž‘์„ฑ

2. ์ž๋ฐ” ์ฝ”๋“œ ์ปดํŒŒ์ผํ•ด ํด๋ž˜์Šค ํŒŒ์ผ ์ƒ์„ฑ

3. /WEB-INF/classesํด๋”์— ํด๋ž˜์Šค ํŒŒ์ผ์„ ํŒจํ‚ค์ง€์— ์•Œ๋งž๊ฒŒ ์œ„์น˜์‹œํ‚จ๋‹ค.

4. web.xmlํŒŒ์ผ์— ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค ์„ค์ •

5. ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ™•์ธ

 

์„œ๋ธ”๋ฆฟ ๊ฐœ๋ฐœ๊ณผ์ •์€ JSP์™€ ๋น„๊ตํ•˜๋ฉด ๋ช‡๊ฐ€์ง€ ๊ณผ์ •์ด ์ถ”๊ฐ€๋˜์–ด ๋” ๋ณต์žกํ•จ, ํ•˜์ง€๋งŒ MVCํŒจํ„ด์„ ์ง€์›ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๊ธฐ๋ฐ˜ ์ฝ”๋“œ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„, ์›น ๊ฐœ๋ฐœ์‹œ ์„œ๋ธ”๋ฆฟ ์ž์ฒด์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ.

 

<์„œ๋ธ”๋ฆฟ ๊ตฌ์กฐ>

 

1. ์„œ๋ธ”๋ฆฟ ๊ตฌํ˜„

- ์„œ๋ธ”๋ฆฟ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ HttpServletํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

-  HttpServletํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„์•ผ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ๋™์ž‘ํ•จ.

- Http์ƒ์† ๋ฐ›์•˜๋‹ค๋ฉด HTTP๋ฐฉ์‹ (method)์— ๋”ฐ๋ผ ์•Œ๋งž์€ ๋ฉ”์„œ๋“œ ์žฌ์ •์˜ํ•ด ๊ตฌํ˜„ํ•ด์•ผํ•จ.

 

โ–ถ HTTP ๊ฐ ๋ฐฉ์‹๋ณ„ ๊ตฌํ˜„ ๋ฉ”์„œ๋“œ(Get๋ฐฉ์‹, Post๋ฐฉ์‹)

   - GET ๋ฐฉ์‹ - doGet() : GET๋ฐฉ์‹์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ,  ex) ํผ ์ถœ๋ ฅํ•˜๊ธฐ

   - POST๋ฐฉ์‹ - doPost() : POST๋ฐฉ์‹์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ex) ํผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌํ•˜๊ธฐ

 

 

2. ์„œ๋ธ”๋ฆฟ

โ–ถ web.xml์— Mappingํ•ด ์‚ฌ์šฉํ•œ ์„œ๋ธ”๋ฆฟ

์„œ๋ธ”๋ฆฟ ์ฝ”๋“œ
web.xml์— ๊ฒฝ๋กœ Mapping

<Servlet์œผ๋กœ ์‚ฌ์šฉํ•  ํด๋ž˜์Šค ๋“ฑ๋ก - Servlet ์ •์˜>

· <servlet-name> : ํ•ด๋‹น ์„œ๋ธ”๋ฆฌ ์ฐธ์กฐํ• ๋•Œ ์‚ฌ์šฉํ•  ์ด๋ฆ„ ์ž…๋ ฅ

· <servlet-class> : ์„œ๋ธ”๋ฆฟ์œผ๋กœ ์‚ฌ์šฉํ•  ํด๋ž˜์Šค์˜ ์™„์ „ํ•œ ์ด๋ฆ„์ž…๋ ฅ

<์„œ๋ธ”๋ฆฟ์ด ์–ด๋–ค URL์„ ์ฒ˜๋ฆฌํ• ์ง€์— ๋Œ€ํ•œ ๋งคํ•‘์ •๋ณด ๋“ฑ๋ก - servlet๋งคํ•‘>

· <servlet-name> : ๋งคํ•‘ํ•  ์„œ๋ธ”๋ฆฟ ์ด๋ฆ„

· <url-pattern> : ๋งคํ•‘ํ•  URL์˜ ํŒจํ„ด ์ง€์ •

 

โ–ถ @WebServlet ์• ๋…ธํ…Œ์ด์…˜์œผ๋กœ ๋งคํ•‘ํ•ด ์‚ฌ์šฉํ•œ ์„œ๋ธ”๋ฆฟ

- ์„œ๋ธ”๋ฆฟ 3.0๋ฒ„์ „๋ถ€ํ„ฐ @WebServlet์ง€์›

- web.xmlํŒŒ์ผ์— ๋“ฑ๋กํ•ด์•ผ ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ, @WebServlet์• ๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด web.xmlํŒŒ์ผ์— ๋”ฐ๋กœ ๋“ฑ๋กํ•˜์ง€ ์•Š์•„๋„ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅ.

- ์„œ๋ธ”๋ฆฟ 3.0์„ ์ง€์›ํ•˜๋Š” ์›น ์ปจํ…Œ์ด๋„ˆ๋Š” @WebServlet์ด ์ ์šฉ๋œ ํด๋ž˜์Šค ๊ฒ€์ƒ‰ํ•ด์„œ ์„œ๋ธ”๋ฆฟ์œผ๋กœ ์ž๋™์œผ๋กœ ๋“ฑ๋กํ•จ.

 

โ–ถ @WebServlet์• ๋…ธํ…Œ์ด์…˜๊ณผ web.xml

@WebServlet์• ๋…ธํ…Œ์ด์…˜ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์„œ๋ธ”๋ฆฟ์ด ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  URLํŒจํ„ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค, ์ž๋ฐ”์†Œ์Šค์ฝ”๋“œ์˜ urlPatterns์†์„ฑ๊ฐ’ ๋ณ€๊ฒฝ ํ›„ ๋‹ค์‹œ ์ปดํŒŒ์ผ ํ•ด์•ผํ•จ. 

web.xml์‚ฌ์šฉํ•  ๊ฒฝ์šฐ URL๊ฒฝ๋กœ๊ฐ€ ๋ฐ”๋€”๊ฒฝ์šฐ web.xmlํŒŒ์ผ๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด๋œ๋‹ค.

๋”ฐ๋ผ์„œ ์„œ๋ธ”๋ฆฟ ์šฉ๋„์— ๋”ฐ๋ผ ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ค‘ ํ•œ๊ฐ€์ง€๋ฅผ ์•Œ๋งž๊ฒŒ ๊ณจ๋ผ์„œ ์‚ฌ์šฉํ•ด์•ผํ•จ.

728x90