0
Web容器如何知道某個特定的Servlet未被初始化。是否有任何特定標誌顯示Servlet的狀態或由Servlet管理的任何其他內容容器中的Servlet初始化
Web容器如何知道某個特定的Servlet未被初始化。是否有任何特定標誌顯示Servlet的狀態或由Servlet管理的任何其他內容容器中的Servlet初始化
在啓動(或重新啓動)期間,如web.xml中所述逐個啓動容器初始servlet。您也可以通過覆蓋init
和destroy
方法發現是否啓動或銷燬了一條鋸齒。
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();
}
}
無論servlet容器是否知道它,它都是容器本身的問題,而不是程序員的業務。容器可以很好地知道何時初始化一個servlet,因爲每個servlet都是通過一個特定的ClassLoader來訪問的,這個ClassLoader考慮到了每一個加載的類。你爲什麼對此感興趣? –
因爲我們知道容器只在初始化的servlet之後調用服務方法。那麼它知道狀態的實現過程如何? –
我想,因爲實現的邏輯本身保證了這個序列:首先調用servlet.init(),然後調用servlet.service()。但我堅持:如果Web服務器符合JEE,它必須*保證在使用它之前初始化該servlet。它是如何做到的,這是一個私人執行的問題。我們的程序員不應該關心它。 –