Ответ
**Servlet API (Jakarta Servlet API)** — это стандартная спецификация Java (часть Jakarta EE, ранее Java EE), которая определяет контракт между веб-сервером (контейнером сервлетов, таким как Apache Tomcat, Jetty, Undertow) и компонентом приложения (**сервлетом**) для обработки HTTP-запросов и формирования ответов.
**Ключевые компоненты API:**
* **`javax.servlet.Servlet` (теперь `jakarta.servlet.Servlet`):** Базовый интерфейс с методами жизненного цикла: `init()`, `service()`, `destroy()`.
* **`javax.servlet.http.HttpServlet`:** Абстрактный класс, расширяющий `Servlet`, предоставляющий методы для обработки конкретных HTTP-методов: `doGet()`, `doPost()`, `doPut()`, `doDelete()` и др.
* **`ServletRequest` / `HttpServletRequest`:** Предоставляют доступ к данным входящего запроса (параметры, заголовки, тело, сессия).
* **`ServletResponse` / `HttpServletResponse`:** Позволяют формировать исходящий ответ (устанавливать статус, заголовки, записывать тело).
* **`ServletContext`:** Представляет контекст всего веб-приложения (общие атрибуты, доступ к ресурсам).
**Пример простого HTTP-сервлета:**
```java
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/hello") // Объявление сервлета и его URL-маппинга с помощью аннотации
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
// Устанавливаем тип контента ответа
response.setContentType("text/html; charset=UTF-8");
// Получаем параметр из запроса
String name = request.getParameter("name");
// Формируем и отправляем ответ
response.getWriter().println("