Servlet ์๋ช ์ฃผ๊ธฐ
Servlet ์๋ช ์ฃผ๊ธฐ
Servlet์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ดํดํ๊ธฐ ์ํด init(), service(), destroy() ๋ฉ์๋๋ฅผ ์์์ผ ํ๋ค.
init()
- WAS๊ฐ ์๋ธ๋ฆฟ ์์ฒญ์ ๋ฐ์์ ๋, ํด๋น ์๋ธ๋ฆฟ์ด ๋ฉ๋ชจ๋ฆฌ์ ์๋ค๋ฉด, ๊ทธ ์๋ธ๋ฆฟ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฐ๋ค.
- ์ด๋ ์ต์ด ํ ๋ฒ init() ๋ฉ์๋๊ฐ ์คํ๋๋ค.
service()
- ํด๋น ์๋ธ๋ฆฟ์ด ์์ฒญ์ ๋ฐ์ ๋๋ง๋ค service() ๋ฉ์๋๊ฐ ์คํ๋๋ค.
destroy()
- ์๋ธ๋ฆฟ์ ๋ด์ฉ์ด ๊ฐฑ์ ๋์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด ๊ฐฑ์ ๋๊ฑฐ๋, WAS๊ฐ ์ข ๋ฃ๋ ๋ destroy() ๋ฉ์๋๊ฐ ์คํ๋๋ค.
์๋ช ์ฃผ๊ธฐ์ ๊ดํ ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ ํ๋ ์์ ๋ฅผ ํตํด ํ์ธํด๋ณด์.
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/LifeCycleExample")
public class LifeCycleExample extends HttpServlet {
private static final long serialVersionUID = 1L;
public LifeCycleExample() {
super();
// TODO Auto-generated constructor stub
}
@Override
public void init() throws ServletException {
System.out.println("init() ๋ฉ์๋");
}
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("service() ๋ฉ์๋");
}
@Override
public void destroy() {
System.out.println("destroy() ๋ฉ์๋");
}
}
์์ ์์ค๋ฅผ ์๋ฒ๋ก ์คํํ ๋ค, ์ฝ์ ์ฐฝ์ ํ์ธํด ๋ณด๋ฉด ๋ฉ์๋๊ฐ ์คํ๋ฌ์์ ์ ์ ์๋ค.init() ๋ฉ์๋
service() ๋ฉ์๋
destroy()์ ์คํ ์์ ์ ํ์ธํ๊ธฐ์ํด, System.out.println("destroy() ๋ฉ์๋")
๋ฅผ System.out.println("destroy() ๋ฉ์๋!!")
์ ๊ฐ์ด ๋ณ๊ฒฝํ์ฌ ์ ์ฅํ๋ฉด, ์๋ธ๋ฆฟ์ ๋ด์ฉ์ด ๊ฐฑ์ ๋๊ณ , ์ฝ์ ์ฐฝ์ ํ์ธํด๋ณด๋ฉด
destroy() ๋ฉ์๋
์ ๊ฐ์ ๋ก๊ทธ๊ฐ ๋์ด์ ์ ์ ์๋ค.
doGet(), doPost()
service()๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ ๋ฐฉ์์ ์๊ด์์ด ์๋ธ๋ฆฟ์ ์์ฒญํ ๋๋ง๋ค ์๋ํ์ง๋ง, doGet()์ get ๋ฐฉ์์ผ๋ก์ ์์ฒญ์๋ง, doPost()๋ post ๋ฐฉ์์ผ๋ก์ ์์ฒญ์๋ง ๋์ํ๋ค.
doGet(), doPost()๋ ๋ชจ๋ service() ์์ ๋ด์ฅ๋์ด ์๊ณ , ์ค๋ฒ๋ผ์ด๋ ํ ์ํ์์, ๋ง๋ ๋ฐฉ์์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ๋ฉด ์๋ธ๋ฆฟ์ service()์์ doGet()๊ณผ doPost() ์ค ๋ง๋ ๋ฉ์๋๋ฅผ ์คํ์์ผ์ค๋ค.
๋ง์ฝ, doGet()์ ํด๋ผ์ด์ธํธ์๊ฒ ์
๋ ฅ๋ฐ์ ์ ๋ณด๋ฅผ post ๋ฐฉ์์ผ๋ก ๊ฐ์ ์ฃผ์๋ก ์ ๋ฌํด ์ฃผ๋ ๊ฒ์ ๊ตฌํํ๊ณ doPost()์ ๊ทธ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๋ ๊ฒ์ ๊ตฌํํด ์ค๋ค๋ฉด,
ํด๋ผ์ด์ธํธ๊ฐ ์ฒ์์ ์ฃผ์์ฐฝ์ get ๋ฐฉ์์ผ๋ก ์๋ธ๋ฆฟ๊ณผ ๋งคํ๋ ์ฃผ์๋ก ์ ์ํ๋ฉด doGet()์ ํ์ด์ง๊ฐ, ํ์ด์ง์์ ์ ๋ณด๋ฅผ ์
๋ ฅํ์ฌ ์ ๋ฌํ๋ฉด ๊ฐ์ ์ฃผ์ ์์์ doPost()์ ํ์ด์ง๊ฐ ์ถ๋ ฅ๋๋ค.
๋ฐ๋ผ์, doGet()๊ณผ doPost()๋ฅผ ๋ถ๋ฆฌํด์ ์ค๊ณํ๋ฉด ํ ์๋ธ๋ฆฟ์์ ๋ ๊ฐ์ง ํ์ด์ง๋ฅผ ์ถ๋ ฅํ ์ ์๋ค.