junior
Какие наиболее распространенные задачи выполняются в контейнере сервлетов
Контейнер сервлетов берёт на себя всю инфраструктурную работу, позволяя разработчику сосредоточиться на бизнес-логике. Основные задачи контейнера:
- Обмен данными — контейнер принимает HTTP-запросы от клиентов, парсит заголовки и тело, оборачивает их в объекты
ServletRequest/ServletResponseи передаёт сервлету. Разработчику не нужно работать с сокетами напрямую. - Управление жизненным циклом — загрузка, инициализация, обработка запросов и уничтожение сервлетов. Контейнер также управляет пулом ресурсов через JNDI.
- Многопоточность — контейнер создаёт новый поток для каждого запроса (или использует пул потоков), не требуя от разработчика ручного управления потоками.
- Поддержка JSP — контейнер транслирует JSP в сервлеты, компилирует и управляет ими.
- Управление ресурсами — пулы соединений, управление памятью, взаимодействие с GC, настройки безопасности.
На собеседовании: важно подчеркнуть, что контейнер реализует inversion of control — он управляет сервлетами, а не наоборот. Это та же концепция, что и в Spring IoC, только на уровне Servlet API.