Чем отличается sendRedirect() от forward()?
forward():
• Выполняется на стороне сервера;
• Запрос перенаправляется на другой ресурс в пределах того же сервера;
• Не зависит от протокола клиентского запроса, так как обеспечивается контейнером сервлетов;
• Нельзя применять для внедрения сервлета в другой контекст;
• Клиент не знает о фактически обрабатываемом ресурсе и URL в строке остается прежним;
• Выполняется быстрее метода sendRedirect();
• Определён в интерфейсе RequestDispatcher.
sendRedirect():
• Выполняется на стороне клиента;
• Клиенту возвращается ответ 302 (redirect) и запрос перенаправляется на другой сервер;
• Может использоваться только с клиентами HTTP;
• Разрешается применять для внедрения сервлета в другой контекст;
• URL адрес изменяется на адрес нового ресурса;
• Медленнее forward() т.к. требует создания нового запроса;
• Определён в интерфейсе HttpServletResponse.