Gymterview
junior

Что такое Request Dispatcher

RequestDispatcher — это интерфейс для передачи запроса другому ресурсу (сервлету, JSP или HTML-файлу) на стороне сервера. Он позволяет организовать внутреннюю маршрутизацию запросов между компонентами веб-приложения без участия клиента.

Два метода

Метод Поведение
forward(request, response) Полностью передаёт обработку запроса другому ресурсу. Клиент не знает о перенаправлении, URL в браузере не меняется
include(request, response) Включает содержимое другого ресурса в текущий ответ. Полезно для составления ответа из нескольких компонентов

Получить RequestDispatcher можно через ServletContext:

Пример
RequestDispatcher rd = getServletContext().getRequestDispatcher("/other");
rd.forward(request, response);

Путь, начинающийся с /, интерпретируется относительно корня контекста приложения. RequestDispatcher работает только в пределах одного веб-приложения — для перенаправления на внешний ресурс используется sendRedirect().

На собеседовании: важно различать forward() и include(). forward() полностью делегирует ответ, include() добавляет контент к текущему ответу. В Spring MVC аналог forward() — это return "forward:/path".