Java servlet: разница между перенаправлением отправки и пересылкой в сервлетах [дубликат]

этот вопрос уже есть ответ здесь:

Я использую сервлет есть два метода redirect и forward оба отправляют запрос на одну и ту же страницу, но в чем разница между ними.любая идея

3 ответов


  • redirect-он использует перенаправление браузера. Он отправляет http-ответ с кодом 3xx (посмотреть в Википедии), а затем браузер отправляет еще один запрос на новую страницу

  • forward-forward является внутренним для контейнера сервлета. Браузер не понимает, что страница изменилась. Следовательно, URL-адрес не изменяется (например, с перенаправлением), и у вас есть тот же запрос на новой странице.


чтобы добавить к пунктам, написанным выше, перенаправить средства на стороне клиента и вперед средства на стороне сервера. Таким образом, это означает, что можно перенаправить его страницу в какое-либо другое приложение из текущего приложения, потому что это происходит на стороне браузера, но в переадресации его на некоторый JSP или сервлет для того же приложения.


в случае запроса диспетчера запрос не возвращается в браузер и он напрямую перенаправляется на страницу (сервлет) из текущего сервлета(страницы). Таким образом, url браузера не изменяется. В то время как в случае отправки перенаправления первый запрос возвращается в браузер с текущей страницы(сервлета), а затем перенаправляется на указанную(страницу). Таким образом, url-адрес изменяется.