junior
Что такое контейнер сервлетов
Контейнер сервлетов (Servlet Container) — это серверное приложение, которое управляет жизненным циклом сервлетов, обеспечивает обмен данными между клиентом и сервлетом, а также предоставляет среду выполнения: управление потоками, безопасностью и сессиями.
Аналогия из жизни: контейнер сервлетов — это ресторан как заведение. Он нанимает официантов (сервлеты), распределяет между ними столики (запросы), следит за графиком работы (жизненный цикл) и обеспечивает инфраструктуру (кухня, посуда, зал).
Функции контейнера
- Создание, инициализация и уничтожение сервлетов
- Маршрутизация запросов к нужному сервлету по URL-паттерну
- Управление многопоточностью — создание потока для каждого запроса
- Управление сессиями и cookies
- Обеспечение безопасности (аутентификация, авторизация)
- Поддержка JNDI для доступа к ресурсам
Популярные контейнеры сервлетов
| Контейнер | Особенности |
|---|---|
| Apache Tomcat | Самый популярный, встроен в Spring Boot по умолчанию |
| Jetty | Легковесный, хорошо подходит для embedded-использования |
| Undertow | Высокопроизводительный, альтернатива для Spring Boot |
| GlassFish | Референсная реализация Jakarta EE |
| WildFly | Полный сервер приложений от Red Hat |
На собеседовании: интервьюер может спросить, чем контейнер сервлетов отличается от сервера приложений. Контейнер реализует только Servlet API, а сервер приложений — полный стек Jakarta EE (JMS, JTA, EJB и т.д.).