๋กœ์ผ“๐Ÿพ
article thumbnail


1. # ์„œ๋ธ”๋ฆฟ??!!

1.0.1.  

1.0.2. ์„œ๋ธ”๋ฆฟ์€ ์„œ๋ฒ„ ์ชฝ์—์„œ ์‹คํ–‰๋˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋™์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ๋„์™€์ฃผ๋Š” ์ž๋ฐ” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.

1.0.3. ์„œ๋ธ”๋ฆฟ์€ ์ž๋ฐ” ํด๋ž˜์Šค์ด๋ฏ€๋กœ ์ž๋ฐ”์˜ ์ผ๋ฐ˜์ ์ธ ํŠน์ง•์€ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ž๋ฐ”์™€ ๋‹ฌ๋ฆฌ ์„œ๋ธ”๋ฆฟ์€ ํ†ฐ์บฃ๊ณผ ๊ฐ™์€ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

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

 

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

1.0.5.  

1.1. ์„œ๋ธ”๋ฆฟ์˜ ํŠน์ง•

  • ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋œ๋‹ค.
  • ์ •์ ์ธ ์›น ํ”„๋กœ๊ทธ๋žจ์„ ๋™์ ์œผ๋กœ ์ฒ˜๋ฆฌํ• ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
  • ์Šค๋ ˆ๋“œ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.
  • ์ž๋ฐ” ํด๋ž˜์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์˜ ํŠน์ง•์„ ๊ฐ–๋Š”๋‹ค.
  • ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ(ํ†ฐ์บฃ)์—์„œ ์‹คํ–‰๋œ๋‹ค.

1.1.1.  


2. # ์„œ๋ธ”๋ฆฟ์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ

 

2.0.1. ์„œ๋ธ”๋ฆฟ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ๋ž€ ์„œ๋ธ”๋ฆฟ ์‹คํ–‰ ๋‹จ๊ณ„๋งˆ๋‹ค ํ˜ธ์ถœ๋˜์–ด ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝœ๋ฐฑ ๋ฉ”์„œ๋“œ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ธ”๋ฆฟ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

 

<code />
package servletTest.servlet1; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FirstServlet extends HttpServlet{ @Override public void init() throws ServletException{ //=> ์„œ๋ธ”๋ฆฟ ์ƒ์„ฑ System.out.println("init ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ"); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ System.out.println("doGet ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ");//=> ์š”์ฒญ ๋ฐ›์Œ } @Override public void destroy() { //=> ์„œ๋ธ”๋ฆฟ ์ข…๋ฃŒ System.out.println("destory ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ"); } }

 

2.0.2. ๋‹ค์Œ๊ณผ ๊ฐ™์ด FirstSevlet๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. HttpServlet ์ƒ์†์„ ๋ฐ˜๋“œ์‹œ ๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ http://127.0.0.1:8090/ํ”„๋กœ์ ํŠธ์ด๋ฆ„/ํŒจํ‚ค์ง€์ด๋ฆ„.FirstServlet์œผ๋กœ ํ•ด๋‹น ์„œ๋ธ”๋ฆฟ ์š”์ฒญ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งค๋ฒˆ ์ด๋ ‡๊ฒŒ ์š”์ฒญํ•˜๊ธฐ์—๋Š” ๋งŽ์ด ๋ฒˆ๊ฑฐ๋กœ์šฐ๋‹ˆ๊น web.xml์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

(web.xml ์—์„œ ์ˆ˜๋™์œผ๋กœ ๋ง๊ณ  ์• ๋„ˆํ…Œ์ด์…˜์„ ์ด์šฉํ•˜์—ฌ ์ž๋™์œผ๋กœ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.)

 

<code />
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0"> <display-name>servletTest</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet><!-- ์‹ค์ œ๋กœ ๋งคํ•‘์— ๋Œ€ํ•ด ์‹คํ–‰๋˜๋Š” ์„œ๋ธ”๋ฆฟ ํด๋ž˜์Šค๋ฅผ ์„ค์ •ํ•˜๋Š” ํƒœ๊ทธ--> <servlet-name>firstServlet</servlet-name> <!-- ๋ฐ˜๋“œ์‹œ mapping์˜ ์„œ๋ธ”๋ฆฟ ์ด๋ฆ„๊ณผ ๊ฐ™์•„์•ผํ•จ--> <servlet-class>servletTest.servlet1.FirstServlet</servlet-class> <!-- ์‹ค์ œ๋กœ ๋งคํ•‘๋˜๋Š” ํŒจํ‚ค์ง€ ํฌํ•จ๋œ ํด๋ž˜์Šค ๊ฒฝ๋กœ --> </servlet> <servlet-mapping><!-- ๋…ผ๋ฆฌ์ ์ธ ์„œ๋ธ”๋ฆฟ ์„ค์ •์„ ์œ„ํ•œ ํƒœ๊ทธ--> <servlet-name>firstServlet</servlet-name> <!-- --> <url-pattern>/first</url-pattern> <!-- url๋กœ ๋งตํ•‘๋  ๋•Œ --> </servlet-mapping> </web-app>

 

2.0.3. servlet ํƒœ๊ทธ์™€ servlet-mapping ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ http://localhost:8090/first ์œผ๋กœ ์š”์ฒญ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ œ๋Œ€๋กœ ๊ตฌํ˜„์„ ํ–ˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

2.0.4.  

 

2.0.5. ๊ทธ๋ฆฌ๊ณ  ๋งŒ์•ฝ ์„œ๋ฒ„๋ฅผ ์ข…๋ฃŒํ•˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ํ•œ๋ฒˆ ๋” ์š”์ฒญ์„ ํ•˜๋ฉด init ๋ฉ”์„œ๋“œ๋Š” ํ˜ธ์ถœ์ด ์•ˆ๋˜๊ณ  doGet ๋ฉ”์„œ๋“œ๋งŒ ํ˜ธ์ถœ์ด ๋ฉ๋‹ˆ๋‹ค. 

2.0.6.  

doGet ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์ด 2๊ฐœ์ง€์š”~

 

2.0.7. ์ด์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์€ ์„œ๋ธ”๋ฆฟ์ด ์Šค๋ ˆ๋“œ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์„œ๋ธ”๋ฆฟ์€ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜๋Š” ์„œ๋ธ”๋ฆฟ์„ ์žฌ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ํ›จ์”ฌ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

2.0.8.  

2.0.9. ๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด destroy ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์ด ๋ฉ๋‹ˆ๋‹ค.

 

2.1.  

2.2.  

2.3. ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

2.4. ์งˆ๋ฌธ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค.

2.5.  

2.6. "๋‚œ ๋ฐ˜๋“œ์‹œ ๋ฐฑ์—”๋“œ ์™•์ด ๋ ๊ฑฐ์•ผ"