Что такое сервлет
Сервлет — это Java-класс, реализующий интерфейс javax.servlet.Servlet, который расширяет возможности сервера для обработки клиентских запросов по модели «запрос-ответ». Чаще всего сервлеты используются для обработки HTTP-запросов в веб-приложениях. Классы и интерфейсы для работы с сервлетами находятся в пакетах javax.servlet и javax.servlet.http (а начиная с Jakarta EE 9 — в jakarta.servlet).
Аналогия из жизни: сервлет — это официант в ресторане. Клиент делает заказ (запрос), официант передаёт его на кухню (бизнес-логика), получает готовое блюдо и приносит клиенту (ответ). Один официант обслуживает много столиков параллельно — так и один экземпляр сервлета обрабатывает множество запросов в разных потоках.
Основные методы интерфейса Servlet
| Метод | Назначение |
|---|---|
init(ServletConfig config) |
Вызывается один раз при загрузке сервлета в память для инициализации |
service(ServletRequest, ServletResponse) |
Вызывается для обработки каждого запроса клиента |
destroy() |
Выполняется один раз перед выгрузкой сервлета из памяти |
getServletConfig() |
Возвращает объект конфигурации сервлета |
getServletInfo() |
Возвращает информацию о сервлете (автор, версия) |
В Spring Boot сервлет DispatcherServlet автоматически регистрируется контейнером и является единственной точкой входа для всех HTTP-запросов. Разработчик не пишет сервлеты вручную, но понимание их жизненного цикла помогает при отладке Spring MVC.
На собеседовании: интервьюер ожидает, что вы свяжете Servlet API со Spring MVC. Частая ошибка — описывать сервлеты как самостоятельную технологию, не упоминая, что
DispatcherServlet— это сердце Spring MVC.