RequestDispatcher — это интерфейс в Java Servlet API, используемый для перенаправления запроса на другой ресурс (например, другой сервлет, JSP или HTML-файл) внутри того же веб-приложения. Он предоставляет два метода: forward() и include().
Методы:
forward(ServletRequest request, ServletResponse response):
include(ServletRequest request, ServletResponse response):
Получение RequestDispatcher:
Можно получить либо от объекта ServletContext, либо от объекта ServletRequest.
ServletContext:
java
ServletRequest:
java
Отличия между forward() и include():
| Критерий | forward() | include() |
|---|---|---|
| Управление ответом | Полностью передается целевому ресурсу. | Ответ целевого ресурса добавляется к текущему. |
| Выполнение | Исходный сервлет прекращает выполнение. | Исходный сервлет продолжает выполнение. |
| URL | Не меняется в адресной строке браузера. | Не меняется в адресной строке браузера. |
| Использование | Делегирование обработки, перенаправление. | Включение контента, композиция ответа. |
RequestDispatcher является важным инструментом для построения сложных веб-приложений, позволяя структурировать логику обработки запросов и повторно использовать компоненты.