Для одновременного запуска сервлета с запуском приложения используются следующие механизмы:
Элемент <load-on-startup> в web.xml:
web.xml для каждого сервлета, который должен быть загружен при старте приложения, добавляется элемент <load-on-startup>.xml
Аннотация @WebServlet с параметром loadOnStartup:
@WebServlet прямо над классом сервлета.loadOnStartup в аннотации выполняет ту же роль, что и элемент <load-on-startup> в web.xml.java
java
При запуске приложения контейнер сервлетов (например, Tomcat, Jetty) читает дескриптор развертывания или сканирует аннотации в классах сервлетов. Для сервлетов с load-on-startup (или loadOnStartup) больше или равно нулю, контейнер вызывает метод init() сервлета сразу после загрузки и инициализации самого веб-приложения (Servlet Context). Это гарантирует, что сервлет будет готов к работе еще до получения первого запроса.
Основная логика, которая должна выполняться при старте приложения, реализуется в методе init() сервлета.