서블릿 동작 과정에 대해 간단하게 알아봐요.
- 클라이언트가 웹 브라우저에 URL 입력을 하면 해당하는 HTTP Request를 해당하는 서버의 Servlet Container 에 보내요.
- Servlet Container 는 요청, 응답 객체를 생성해요.
- 클라이언트가 요청한 URL을 web.xml을 참조해서 분석하고 어느 서블릿에 대한 요청인지 찾아요.
- 서블릿이 처음 요청된 경우에는 서블릿 클래스를 메모리에서 로딩하여 객체를 생성해요. 생성된 객체는 메모리에 계속 존재하므로 이후에 동일한 요청이 왔을 때는 기존의 객체를 사용해요.
- init() : 객체가 생성되면서 init()이 최초에 한번 호출돼요
- service() : 요청 메소드(GET,POST)에 따라 실행돼요. 여러 클라이언트가 동시에 요청을 하더라도 쓰레드가 생성되므로 동시에 service()가 실행이 되기 때문에 수행속도가 빨라요.
- destroy() : 서블릿이 더이상 필요 없을경우에 destroy()를 호출해서 연결을 해지해요.
- Servlet Container는 service() 메소드를 호출해서 POST,GET 여부에 따라 doGet(), doPost()를 호출해요.
- doGet(), doPost() 메소드는 동적인 페이지를 생성한 후에 HttpServletResponse 객체에 응답을 보내요.
- 응답이 완료되면 요청,응답 두 객체를 소멸시켜요.
반응형