TGViewer
Java | Вопросы собесов Java | Вопросы собесов @easy_java_ru · 11.3K subscribers
Post #339 4.64K
📌 Чем отличается sendRedirect() от forward() ?

💬 Спросят с вероятностью 6%

Методы sendRedirect() и forward() сервлетах используются для перенаправления запроса к другому ресурсу. Однако они работают по-разному и предназначены для различных целей.

Основные отличия

1️⃣ Тип перенаправления:

➕ `sendRedirect()`: Клиентское перенаправление.

➕) от forward( Серверное перенаправление.

2️⃣ Изменение URL:

➕ sendRedirect(): URL в адресной строке браузера изменяется на URL нового ресурса.

➕ forward(): URL в адресной строке браузера не изменяется, клиент видит исходный URL.

3️⃣ Процесс перенаправления:

➕ward() сервлетах и Сервер отправляет клиенту ответ с HTTP-статусом 302 и заголовком Location, указывающим новый URL. Браузер делает новый запрос по этому URL.

➕ forward(): Сервер передает управление другому ресурсу на сервере без участия клиента. Перенаправление происходит внутри сервера.

4️⃣ Область видимости:

➕ sendRedirect(): Может перенаправлять на любой URL, включая внешние ресурсы.

➕ forward(): Может перенаправлять только на ресурсы внутри того же веб-приложения.

5️⃣ Время выполнения:

➕ct() и forward() с Выполнение перенаправления требует дополнительного запроса-ответа, что может быть медленнее.

➕ct() и forwar Перенаправление происходит на сервере без дополнительного запроса, что быстрее.

Примеры:

sendRedirect()
@WebServlet("/redirectExample")
public class RedirectExampleServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Перенаправление на другой URL
response.sendRedirect("https://www.example.com");
}
}


forward()
@WebServlet("/forwardExample")
public class ForwardExampleServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Получение объекта RequestDispatcher для целевого ресурса
RequestDispatcher dispatcher = request.getRequestDispatcher("/targetServlet");

// Перенаправление запроса и ответа к другому сервлету
dispatcher.forward(request, response);
}
}

@WebServlet("/targetServlet")
public class TargetServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Обработка запроса и формирование ответа
response.getWriter().println("This is the target servlet.");
}
}


Важные моменты

1️⃣ Передача данных:

➕ sendRedirect(): Данные, установленные в запросе или сессии, не сохраняются автоматически при новом запросе. Необходимо использовать параметры URL или сессии для передачи данных.

➕ forward(): Данные, установленные в запросе, сохраняются и передаются другому ресурсу.

2️⃣ Использование:

➕() и forward() сер Подходит для перенаправления на ресурсы вне веб-приложения или для обновления URL в браузере клиента.

➕rward() сервл Подходит для внутренних переходов между ресурсами в рамках одного веб-приложения, особенно когда необходимо передать данные запроса.

➕ sendRedirect(): Перенаправляет клиент на новый URL с изменением адреса в браузере и выполнением нового запроса.

➕) и forward() Перенаправляет запрос и ответ внутри сервера на другой ресурс без изменения URL в браузере клиента и без выполнения нового запроса.

🔥 ТОП ВОПРОСОВ С СОБЕСОВ

🔒 База собесов | 🔒 База тестовых
  • ❤ 4
  • 👍 4
More from @easy_java_ru
  1. Oct 11, 2026🤔 Какой класс позволяет читать данные из входного байтового потока в формате примитивных…
  2. Oct 11, 2026🤔 Чем отличается where от having ? WHERE и HAVING используются для фильтрации записей, но…
  3. Oct 10, 2026🤔 На основании какой структуры данных реализован ArrayList? ArrayList реализован на базе…
  4. Oct 9, 2026🤔 Что такое «HTML»? HTML (HyperText Markup Language) — это язык разметки, используемый дл…
  5. Oct 9, 2026🤔 В чём различие между LeftJoin , RightJoin и InnerJoin? LEFT JOIN, RIGHT JOIN и INNER JO…
  6. Oct 8, 2026🤔 Что такое поток "демон"? Демон-поток — это поток, который: - Работает на фоне (например…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →