2015-06-27 50 views
0

Web容器如何知道某個特定的Servlet未被初始化。是否有任何特定標誌顯示Servlet的狀態或由Servlet管理的任何其他內容容器中的Servlet初始化

+0

無論servlet容器是否知道它,它都是容器本身的問題,而不是程序員的業務。容器可以很好地知道何時初始化一個servlet,因爲每個servlet都是通過一個特定的ClassLoader來訪問的,這個ClassLoader考慮到了每一個加載的類。你爲什麼對此感興趣? –

+0

因爲我們知道容器只在初始化的servlet之後調用服務方法。那麼它知道狀態的實現過程如何? –

+0

我想,因爲實現的邏輯本身保證了這個序列:首先調用servlet.init(),然後調用servlet.service()。但我堅持:如果Web服務器符合JEE,它必須*保證在使用它之前初始化該servlet。它是如何做到的,這是一個私人執行的問題。我們的程序員不應該關心它。 –

回答

0

在啓動(或重新啓動)期間,如web.xml中所述逐個啓動容器初始servlet。您也可以通過覆蓋initdestroy方法發現是否啓動或銷燬了一條鋸齒。

public class PrecompressedResourceServlet extends HttpServlet { 

    private static final Logger LOG = LoggerFactory 
      .getLogger(PrecompressedResourceServlet.class); 

    @Override 
    public void init() throws ServletException { 
     LOG.info("The PrecompressedResourceServlet initialized..."); 
     super.init(); 
    } 
}