Servlet — это интерфейс в Java?

«Servlet — это интерфейс в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

**Да, `javax.servlet.Servlet` (теперь `jakarta.servlet.Servlet`) — это базовый интерфейс в Java EE/Jakarta EE.** Он является фундаментальным компонентом для обработки HTTP-запросов на сервере. **Ключевые методы интерфейса `Servlet`:** * `void init(ServletConfig config)` – инициализация сервлета. * `void service(ServletRequest req, ServletResponse res)` – основной метод для обработки **любого** запроса. * `void destroy()` – очистка ресурсов перед выгрузкой сервлета. * `ServletConfig getServletConfig()` – получение конфигурации. **На практике** разработчики наследуются от класса-адаптера `HttpServlet`, который реализует `Servlet` и предоставляет удобные методы для HTTP (`doGet`, `doPost` и т.д.). **Пример простого HTTP-сервлета:** ```java @WebServlet("/hello") public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("

Hello from Servlet!

"); } } ``` **Жизненный цикл** сервлета контролируется контейнером (например, Tomcat): **Загрузка -> Инициализация (init) -> Обработка запросов (service) -> Уничтожение (destroy)**.