서블릿이 요청을 처리 한 후 가비지 수집됩니까 즉시? 아니면 따라야 할 요청을 기다리는 동안 더 오래 살아있을 수 있습니까?요청이 없으면 서블릿은 얼마나 오래 살아 있습니까?
서블릿이 즉시 죽으면 그 다음에 오는 요청은 유감입니다.
서블릿이 오래 살아 있다면 자원 낭비 일 수 있습니다.
저는 이것이 균형 문제의 대부분이라고 생각합니다. 서블릿이 유휴 상태가 된 후 얼마나 오랫동안 살아야하는지 결정/구성하는 방법이 있습니까?
서블릿이 요청을 처리 한 후 가비지 수집됩니까 즉시? 아니면 따라야 할 요청을 기다리는 동안 더 오래 살아있을 수 있습니까?요청이 없으면 서블릿은 얼마나 오래 살아 있습니까?
서블릿이 즉시 죽으면 그 다음에 오는 요청은 유감입니다.
서블릿이 오래 살아 있다면 자원 낭비 일 수 있습니다.
저는 이것이 균형 문제의 대부분이라고 생각합니다. 서블릿이 유휴 상태가 된 후 얼마나 오랫동안 살아야하는지 결정/구성하는 방법이 있습니까?
처음에는 서블릿이로드되지 않습니다. 서블릿은 애플리케이션이 시작된 후 처음으로 호출을 받으면로드됩니다.
메모리에서 제거되거나 제거되지 않을 수 있습니다 (언로드 됨). 이것은 서블릿 컨테이너 (Tomcat/JBoss 등)에 따라 다릅니다.이 컨테이너는 서블릿이 메모리에 남아 있어야하는 기간을 결정합니다. 서블릿 (즉 어떤 요청이 도착하지 않음) 유휴 상태에 있으면
너무 오래 컨테이너 는 메모리에서를 언로드 할 수 있습니다.
하지만 이제 다른 요청을 언로드 한 후 Servlet에 도착한다고 말하십시오. Then 다시 컨테이너는 Servlet을 메모리에로드합니다. 그리고 이것은 WebApplication 기능에 영향을 미치지 않습니다. 모든 요청은 별도의 스레드에서 처리됩니다. 그리고 두 가지 요청은 서로 의존하지 않습니다.
작업 항목이 웹 컨테이너에 속하는 메모리에서 Servlet을 언로드하거나로드 할시기를 결정할 수 없습니다. Tomcat/Jboss/Glasssfish처럼.
그런 이유로 ServletRequestListner, ServletResponseListner와 같은 리스너가 있습니다. ServletRequestListner, ServletResponseListner는 Servlet/Request/Response Objects와 같은 이벤트가 생성되고 파기 될 때 사용자가 제어 할 수없는 이벤트를 처리 할 때 도움이됩니다.
'ServletRequestListener' 클래스를 설명해 주셔서 감사합니다. – smwikipedia
HttpServlet을파괴가()을 GenericServlet을 형성지고을.
destroy() 메서드가 Servlet 수명주기의 끝에서 호출 중입니다.
이후 서블릿 개체가 가비지 수집 대상으로 표시됩니다.
그리고 @Oliver가 말한 것처럼 destroy 메소드를 호출하고 가비지 수집을 위해 서블릿을 표시 할시기를 결정하는 것은 컨테이너에 대한 것입니다.
서블릿을 호출하는 원인을 보려면 here을 참조하십시오. destroy() 메서드를 참조하십시오.
희망이 도움이됩니다.
"live"? 서블릿은 정의상 스레드가 안전하지 않은 리소스이므로 모든 세션에서 (해당 서블릿에 대한) 모든 요청에서 공유/재사용됩니다.ServletContext 자체가 파기되거나 thres 될 때까지 웹 애플리케이션이 살아있을 때까지 살아있다. [서블릿은 어떻게 작동합니까? 인스턴스화, 세션 변수 및 다중 스레드] (http://stackoverflow.com/a/3106909/1391249). – Tiny