Gymterview
junior

Как из одного сервлета вызвать другой сервлет

Для вызова сервлета в рамках одного приложения используется RequestDispatcher с методами forward() (делегирование) или include() (включение контента). Для вызова сервлета в другом приложении или на другом сервере используется sendRedirect().

Способ Когда использовать
RequestDispatcher.forward() Передать обработку другому сервлету в том же приложении
RequestDispatcher.include() Включить результат другого сервлета в текущий ответ
HttpServletResponse.sendRedirect() Перенаправить клиента на другой URL (в том числе внешний)

Для передачи данных между сервлетами в рамках одного запроса используются атрибуты: request.setAttribute("key", value) в первом сервлете и request.getAttribute("key") во втором. При sendRedirect() передать данные можно через query-параметры URL или cookies, так как это новый запрос.

На собеседовании: покажите, что понимаете разницу: forward()/include() — серверная маршрутизация (один HTTP-запрос), sendRedirect() — клиентская (два HTTP-запроса).