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".