Java/Java_Servlet
(8) 서블릿 동작 과정
Unlimited00
2023. 8. 22. 18:47
* 클라이언트 1이 요청하면 톰캣은 FirstServlet이 메모리에 로드되어 있는지 확인한다. 최초의 요청이므로 init() 메서드를 호출하여 FirstServlet 인스턴스를 메모리에 로드한다. 그런 다음 doGet()이나 doPost() 메서드를 호출하여 서비스를 한다.
* 클라이언트 2가 다시 동일한 서블릿을 요청하면 톰캣은 다시 FirstServlet이 메모리에 로드되어 있는지 확인한다. 이번에는 메모리에 있는 것이 확인되므로 바로 doGet()이나 doPost() 메서드를 호출하여 서비스를 한다.
* 다음은 브라우저의 다른 탭에서 동일한 요청을 했을 때의 결과이다.
* 톰캣을 실행한 후 브라우저로 요청하여 출력 결과를 확인해 보자. 맨 처음 브라우저에서 /first로 요청하면 최초의 요청이므로 FirstServlet 클래스의 init()을 호출해 초기화한 후 메모리에 로드되어 doGet() 메서드를 호출하여 서비스를 한다.
* 그러나 다른 브라우저에서 동일한 서블릿 매핑 이름인 /first로 요청하면 미리 메모리에 로드된 FirstServlet 클래스 서블릿이 재사용되므로 init()은 호출하지 않고 doGet() 메서드만 호출되어 서비스를 한다.
* 이처럼 동일한 작업의 경우 서블릿은 메모리에 존재하는 서블릿을 재사용함으로써 훨씬 빠르고 효율적으로 동작한다.