Основным отличием здесь является то, что браузер «трогается» при перенаправлении (уже упоминалось).
Это легко продемонстрировать на примере использования логина.
Пользователь получает страницу /login
и отправляет форму входа на номер /doLogin
, в результате чего отображается его страница /profile
. Действие входа подтверждает ввод пользователя.
Здесь возникает критическое различие: если действие выполняет операцию forward
, то пользователь увидит /doLogin
в окне URL-адреса. Вот почему действие должно выполнить redirect
, чтобы пользователь увидел /profile
в поле URL-адреса И чтобы браузер мог правильно обрабатывать обратную навигацию.
Для других действий, не требующих изменения состояния, которые следует учитывать в истории браузера, вы можете использовать forward
.