不,在每个请求中都不会调用它。它仅在servlet初始化期间被调用,该初始化通常在webapp的生存期内仅发生一次。另请参阅此答案以获取更多有关如何创建和执行servlet的详细信息。
如果您实际上想进行一些全局/应用程序范围的初始化(因此,它本身并不仅仅与特定的servlet绑定),那么通常可以使用ServletContextListener
。您可以在contextInitialized()
方法中进行初始化。
import javax.servlet.ServletContextEvent;
import javax.servlet.servletcontextlistener;
import javax.servlet.annotation.WebListener;
@WebListener
public class Config implements servletcontextlistener {
public void contextInitialized(ServletContextEvent event) {
// Do stuff during webapp's startup.
}
public void contextDestroyed(ServletContextEvent event) {
// Do stuff during webapp's shutdown.
}
}
如果您Servlet 3.0
尚未上线且无法升级,因此无法使用@WebListener
注释,则需要手动注册,/WEB- INF/web.xml
如下所示:
<listener>
<listener-class>com.example.Config</listener-class>
</listener>