2015-06-27 2 views
0

Как веб-контейнер знает, что определенный сервлет не был инициализирован. Есть ли какой-либо конкретный флаг, который показывает статус сервлета или что-либо еще, управляемое сервлетом.Инициализация сервлета в контейнере

+0

Wether контейнер сервлетов знает это или нет, это вопрос самого контейнера, ничего из бизнеса программиста. Корневой контейнер может прекрасно знать, когда сервлет инициализирован, потому что каждый сервлет доступен через определенный ClassLoader, который учитывает каждый загруженный класс. Почему вы об этом думаете? –

+0

Поскольку мы знаем, что контейнер вызывает метод службы только после инициализации сервлета. Итак, как реализовать, что он знает статус? –

+0

Я полагаю, что логика самой реализации гарантирует эту последовательность: сначала она вызывает servlet.init(), а затем servlet.service(). Но я настаиваю: если веб-сервер совместим с JEE, он * должен * гарантировать, что сервлет инициализирован до его использования. Как это делается, это вопрос, частный для этой реализации. Мы, программисты, не должны волновать это. –

ответ

0

Начальный сервлет контейнера во время запуска (или перезапуска) один за другим, как указано в web.xml. Вы также можете найти, инициируется или разрушается сервлета с помощью переопределения методов 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(); 
    } 
} 
Смежные вопросы