Servlet — это интерфейс в 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)**.

Ответ 18+ 🔞

Ну, слушай, вот есть у нас эта штука — `javax.servlet.Servlet` (ну или теперь `jakarta.servlet.Servlet`, потому что оракуловские юристы, блядь, доверия ебать ноль). Это типа как фундамент, на котором всё держится в серверной части Java EE. Без него нихуя не работает. **Вот что он из себя представляет, этот интерфейс:** * `void init(ServletConfig config)` – сервлет просыпается, потягивается, ему говорят: «Вот твои настройки, живи тут». Это типа инициализация. * `void service(ServletRequest req, ServletResponse res)` – а это, сука, главный метод! Сюда приходят **все** запросы, какие только могут быть. Он как диспетчер на проходной. * `void destroy()` – когда сервлету приходит пиздец, контейнер говорит: «Собирай манатки, на выход», и сервлет должен за собой прибраться. * `ServletConfig getServletConfig()` – ну это чтобы спросить: «А как меня, блядь, зовут и что я тут вообще делаю?». **Но на практике**, если ты не мазохист, ты не будешь этот интерфейс с нуля пилить. Все нормальные люди берут готовый класс-адаптер `HttpServlet`. Он уже за тебя всё сделал — разложил HTTP-запросы по полочкам: `doGet`, `doPost` и прочие `do...`. Красота, ёпта! **Вот, смотри, как это выглядит в жизни:** ```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`). Всё, приехали.