ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๐Ÿš€ JSP(Java Server Page)๋ž€

JSP๋Š” Java Server Page์˜ ์•ฝ์ž๋กœ, HTML ์ฝ”๋“œ์— JAVA ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด ๋™์  ์›นํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. JSP๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ(Servlet)์œผ๋กœ ๋ณ€ํ™˜๋˜๋ฉฐ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์—์„œ ๋™์ž‘๋˜๋ฉด์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ทธ๋ ‡๊ฒŒ ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์›นํŽ˜์ด์ง€์™€ ํ•จ๊ป˜ ํด๋ผ์ด์–ธํŠธ๋กœ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

JSP ๋™์ž‘ ๊ณผ์ •

  1. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›น ์„œ๋ฒ„์— JSP์— ๋Œ€ํ•œ ์š”์ฒญ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•œ๋‹ค
  2. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์š”์ฒญํ•œ JSP๊ฐ€ ์ตœ์ดˆ๋กœ ์š”์ฒญํ–ˆ์„ ๊ฒฝ์šฐ๋งŒ JSP๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๊ฐ€ ์„œ๋ธ”๋ฆฟ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋œ๋‹ค(javaํŒŒ์ผ ์ƒ์„ฑ)
  3. ์„œ๋ธ”๋ฆฟ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•ด์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ bytecode๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค(class ํŒŒ์ผ ์ƒ์„ฑ)
  4. ์„œ๋ธ”๋ฆฟ์ด ์‹คํ–‰๋˜์–ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‘๋‹ต ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

์„œ๋ธ”๋ฆฟ(Servlet)

์„œ๋ธ”๋ฆฟ(Servlet)์ด๋ž€ ๋™์  ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์„œ๋ธ”๋ฆฟ์€ ์›น ์š”์ฒญ๊ณผ ์‘๋‹ต์˜ ํ๋ฆ„์„ ๊ฐ„๋‹จํ•œ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๋งŒ์œผ๋กœ ์ฒด๊ณ„์ ์œผ๋กœ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

์„œ๋ธ”๋ฆฟ์€ ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋‹ค๊ฐ€ ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์š”์ฒญ์„ ํ•˜๋ฉด ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ฒฐ๊ณผ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ๊ทธ์ธ ์‹œ๋„๋ฅผ ํ•  ๋•Œ, ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ž…๋ ฅ๋˜๋Š” ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ™•์ธํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์‘๋‹ตํ•˜๋Š”๋ฐ ์ด๋Ÿฌํ•œ ์—ญํ•™์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์„œ๋ธ”๋ฆฟ์ด๋‹ค.

์„œ๋ธ”๋ฆฟ(Servelt)์˜ ์ฃผ์š” ํŠน์ง•

  • ํด๋ผ์ด์–ธํŠธ์˜ Request์— ๋Œ€ํ•ด ๋™์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปดํฌ๋„ŒํŠธ
  • ๊ธฐ์กด์˜ ์ •์  ์›น ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฌธ์ œ์ ์„ ๋ณด์™„ํ•˜์—ฌ ๋™์ ์ธ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  • JAVA์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋™์ž‘
  • MVC ํŒจํ„ด์—์„œ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ด์šฉ๋จ
  • ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰
  • ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ์ ์šฉํ•˜๊ธฐ ์‰ฌ์›€

์„œ๋ธ”๋ฆฟ์˜ ๋™์ž‘๊ณผ์ •

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ์„œ๋ฒ„์— ์š”์ฒญํ•˜๋ฉด ์›น ์„œ๋ฒ„๋Š” ๊ทธ ์š”์ฒญ์„ ํ†ฐ์บฃ๊ณผ ๊ฐ™์€ WAS์— ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด WAS๋Š” ๊ฐ ์š”์ฒญ์— ํ•ด๋‹นํ•˜๋Š” ์„œ๋ธ”๋ฆฟ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„œ๋ธ”๋ฆฟ์€ ์š”์ฒญ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

1. ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ
2. HttpServletRequest, HttpServletResponse ๊ฐ์ฒด ์ƒ์„ฑ
3. Web.xml์ด ์–ด๋Š ์„œ๋ธ”๋ฆฟ์— ๋Œ€ํ•ด ์š”์ฒญํ•œ ๊ฒƒ์ธ์ง€ ํƒ์ƒ‰
4. ํ•ด๋‹นํ•˜๋Š” ์„œ๋ธ”๋ฆฟ์—์„œ service() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ
5. doGet() ๋˜๋Š” doPost() ํ˜ธ์ถœ
6. ๋™์  ํŽ˜์ด์ง€ ์ƒ์„ฑ ํ›„ ServletResponse ๊ฐ์ฒด์— ์‘๋‹ต ์ „์†ก
7. HttpServletRequest, HttpServletResponse ๊ฐ์ฒด ์†Œ๋ฉธ

์„œ๋ธ”๋ฆฟ ๋“ฑ๋ก with web.xml

์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์ด๋“  ํŠน์ • ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ๊ฒฝ๋กœ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์›น๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›น์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ(Request)์„ ํ•  ๋•Œ, Servlet์ด ํ•„์š”ํ•˜๋‹ค๋ฉด ํ•ด๋‹น Servlet์ด ์œ„์น˜ํ•œ ๊ฒฝ๋กœ๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๊ฒฝ๋กœ๋Š” ๊ฐ€์ƒ๊ฒฝ๋กœ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด Servlet์€ ์„œ๋ฒ„์˜ ๋‚ด๋ถ€ ๋กœ์ง์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ ๋‚ด๋ถ€ ๋กœ์ง์„ ๋…ธ์ถœ์‹œํ‚ค๋Š” ์ผ์ด ๋ฉ๋‹ˆ๋‹ค.

 

Dynamic Web Project๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์ƒ๊ธฐ๋Š” WEB-INF ํด๋”๋Š” ์„œ๋ฒ„๋งŒ์ด ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์˜์—ญ์ž…๋‹ˆ๋‹ค. ์ด ์•ˆ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ํŒŒ์ผ์€ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ๋กœ๋กœ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋„๋ก ์•ฝ์†๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Servlet ํŒŒ์ผ์€ WEB-INF ์•ˆ classes ํด๋” ์•ˆ์— ์ €์žฅ๋˜๊ธฐ๋กœ ์˜ˆ์•ฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ WEB-INF ํด๋”์— ๋งŒ๋“  ๋ชจ๋“  ํŒŒ์ผ์€ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ WEB-INF ๋ฐ–์— ํŒŒ์ผ์„ ์œ„์น˜์‹œํ‚ค๋ฉด ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ WEB-INF ํด๋” ์•ˆ์˜ Servlet์— ์ ‘๊ทผํ•˜๋ ค๋ฉด ๊ฐ€์งœ๊ฒฝ๋กœ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ง„์งœ ๊ฒฝ๋กœ๋Š” ์ˆจ๊ธฐ๊ณ  ๊ฐ€์งœ ๊ฒฝ๋กœ๋ฅผ ๋งŒ๋“ค์–ด, ์˜ค๋กœ์ง€ ์„œ๋ฒ„๋งŒ์ด ์ง„์งœ ๊ฒฝ๋กœ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค์–ด ์™ธ๋ถ€ ์ ‘๊ทผ์œผ๋กœ๋ถ€ํ„ฐ ์„œ๋ฒ„์˜ ๋กœ์ง์„ ๋ณดํ˜ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ด๋•Œ ๊ฐ€์งœ ๊ฒฝ๋กœ(๊ฐ€์ƒ ๊ฒฝ๋กœ)๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ web.xml์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค.

 

WEB-INF์— ๋“ค์–ด๊ฐ€๋ฉด web.xml์ด๋ผ๋Š” ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. web.xml ํŒŒ์ผ์—์„œ ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค์™€ ๊ฐ€์ƒ ๊ฒฝ๋กœ๋ฅผ ๋งคํ•‘ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์„œ๋ธ”๋ฆฟ์„ ๋“ฑ๋กํ•ด์ค€๋‹ค๋Š” ๊ฒƒ์€ ์—ฐ์‚ฐ์„ ํ•ด์ค„ ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•ด์ค€๋‹ค๋Š” ๊ฒƒ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  web.xml์„ ์ž‘์„ฑํ•ด๋ด…์‹œ๋‹ค.

 

๐Ÿ“œ WebContent/WEB-INF/web.xml ํŒŒ์ผ

<servlet>
    <servlet-name>Oper></servelt-name>
    <servlet-class>com.task.app.Oper></servlet-class>
</servelt>

<servlet-mapping>
    <servlet-name>Oper</servlet-name>
    <url-pattern>/Oper</url-pattern>
</servlet-mapping>

<servlet-class>์—๋Š” ์„œ๋ธ”๋ฆฟ ๊ฒฝ๋กœ๋ฅผ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. <url-pattern>์„ ํ†ตํ•ด ์›ํ•˜๋Š” ๊ฐ€์ƒ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค. <servlet-name>์€ ๋‹‰๋„ค์ž„์œผ๋กœ ์ด๋ฅผ ํ†ตํ•ด .xml ์•ˆ์—์„œ ์†Œํ†ต์ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์„œ๋ธ”๋ฆฟ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์ƒ ๊ฒฝ๋กœ๊ฐ€ ์ง€์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. web.xml ํŒŒ์ผ์„ ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ๊ฐ™์ด ๋กœ๋”ฉ๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์„œ๋ฒ„๋ฅผ ๊ป๋‹ค์ผœ์•ผ 

728x90
LIST