Servlet
Servlet
์ ์น ์๋ฒ ๋ด์์ ์น ํ์ด์ง๋ฅผ ๋์ ์ผ๋ก ์์ฑํ๋ Java ๊ธฐ๋ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์
ํ๋ก๊ทธ๋จ์ด๋ค.
Servlet
์ ์น ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์์ฒญ์ ๋ฐ๊ณ ํน์ ๋ก์ง์ ์ํํ ๋ค ์๋ต์ ๋ณด๋ธ๋ค.
Java ์์ Servlet
์ ์ธํฐํ์ด์ค๋ก ์ ๊ณต๋๋๋ฐ, ํ๋กํ ์ฝ์ ๋
๋ฆฝ์ ์ธ GenericServlet
์ด๋ HTTP ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ HttpServlet
์ ์ฌ์ฉํ ์ ์๋ค.
Servlet ์ ์๋ช ์ฃผ๊ธฐ
init(ServletConfig config)
init()
๋ฉ์๋๋ Servlet
์ด ์๋น์ค์ ๋ฐฐ์น๋๊ณ ์์์ Servlet
์๊ฒ ์๋ฆฌ๊ธฐ ์ํด ํฐ์บฃ๊ณผ ๊ฐ์ ServletContainer
์ ์ํด ํธ์ถ๋๋ค.
ServletContainer
๋ Servlet
์ ์ธ์คํด์คํํ ํ init()
๋ฉ์๋๋ฅผ ์ต์ด์ ํ ๋ฒ ํธ์ถํ๋ค. Servlet
์ด ์์ฒญ์ ์์ ํ๊ธฐ ์ํด์ init()
๋ฉ์๋๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋์ด์ผ ํ๋ค.
service(ServletRequest req, ServletResponse res)
Servlet
์ด ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ServletContainer
์ ์ํด ํธ์ถ๋๋ค.
service()
๋ฉ์๋๋ init()
๋ฉ์๋๊ฐ ์ ์์ ์ผ๋ก ์๋ฃ๋์์ ๊ฒฝ์ฐ์๋ง ํธ์ถ๋๋ค.
Servlet
์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ฌ ์์ฒญ์ ๋์์ ์ฒ๋ฆฌํ ์ ์๋ ๋ฉํฐ ์ค๋ ๋ ServletContainer
์์ ์ฒ๋ฆฌ๋๋ค. ๋๋ฌธ์, Servlet
์ ๊ตฌํํ ๋ ํ์ผ, ๋คํธ์ํฌ ์ปค๋ฅ์
, ์๋ธ๋ฆฟ์ ํด๋์ค ๋ฐ ์ธ์คํด์ค ๋ณ์๊ณผ ๊ฐ์ ๊ณต์ ๋ฆฌ์์ค์ ๋ํ ์ ๊ทผ์ ๋๊ธฐํํด์ฃผ์ด์ผ ํ๋ค.
destroy()
destroy()
๋ฉ์๋๋ Servlet
์ด ์๋น์ค์์ ์ ๊ฑฐ๋๊ณ ์์์ Servlet
์๊ฒ ์๋ฆฌ๊ธฐ ์ํด ServletContainer
์ ์ํด ํธ์ถ๋๋ค. ์ด ๋ฉ์๋๋ Servlet
๋ด์ ๋ชจ๋ ์ค๋ ๋๊ฐ ์ข
๋ฃ๋๊ฑฐ๋ timeout
๊ธฐ๊ฐ์ด ์ง๋ ํ์๋ง ํธ์ถ๋๋ค. ServletContainer
๊ฐ ์ด ๋ฉ์๋๋ฅผ ํธ์ถํ ํ์๋ ํด๋น Servlet
์ service()
๋ฉ์๋๋ฅผ ํธ์ถํ์ง ์๋๋ค.
์ด ๋ฉ์๋๋ Servlet
์ด ๋ณด์ ํ ๋ฉ๋ชจ๋ฆฌ, ์ค๋ ๋ ๋ฑ์ ๋ฆฌ์์ค๋ฅผ ์ ๋ฆฌํ ๊ธฐํ๋ฅผ ์ ๊ณตํ๊ณ ๋ชจ๋ ์์ ์ํ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์๋ Servlet
์ ํ์ฌ ์ํ์ ๋๊ธฐํ ๋๋๋ก ํ๋ค.
Servlet Container
ServletContainer
๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๊ณ ์๋ตํ ์ ์๋๋ก ์์ผ์ผ๋ก ํต์ ํ๊ณ ์์ฒญ์ ๋ง๋ Servlet
์ ์ฐพ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ฑ ์ ๋ฐ์ ์ธ Servlet
์ ๊ด๋ฆฌ๋ฅผ ๋ด๋นํ๋ค.
๋ํ์ ์ธ ServletContainer
๋ก Tomcat
์ด ์๋ค.
Servlet Container ์ ์ญํ
์น ์๋ฒ์ ํต์ ์ง์
ServletContainer
๋ Servlet
๊ณผ ์น ์๋ฒ๊ฐ ํต์ ํ ์ ์๋๋ก ๋์์ค๋ค. ์ด๋ฌํ ํต์ ๊ณผ์ ์ ์๋ตํ ์ ์๋๋ก ํด์ฃผ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๋ Servlet
์ service()
๋ฉ์๋์์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ๋๋ฐ ์ง์คํ ์ ์๋ค.
Servlet ์ ์๋ช ์ฃผ๊ธฐ ๊ด๋ฆฌ
ServletContainer
๋ Servlet
์ ์ธ์คํฐ์คํํ๊ณ init()
๋ฅผ ํธ์ถํด Servlet
์ ์ด๊ธฐํํ๋ค.
์์ฒญ์ด ๋ค์ด์ค๋ฉด service()
๋ฉ์๋๋ฅผ ํตํด ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ Servlet
์ ์ญํ ์ด ์ข
๋ฃ๋๋ฉด destroy()
๋ฅผ ํธ์ถํ์ฌ GC ๋์์ด ๋๋๋ก ํ๋ค.
๋ฉํฐ์ค๋ ๋ ์ง์ ๋ฐ ๊ด๋ฆฌ
ServletContainer
๋ ์์ฒญ์ด ๋ค์ด์ฌ ๋ ๋ง๋ค ์์ฒญ์ ์ฒ๋ฆฌํ Java ์ค๋ ๋๋ฅผ ์๋ก ์์ฑํ๋ค. ๋ค์ค ์ค๋ ๋ ์์ฑ ๋ฐ ์ด์์ ํตํด ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ค.