Почему RequestDispatcher не меняет url в строке браузера?

233
25 июля 2017, 17:13

Есть фильтр который передает управление определенному сервлету таки образом:

req.getRequestDispatcher("all_proposes").forward(req, resp);

Есть сервлет которой привязан к данному url:

<servlet>
    <servlet-name>AllProposes</servlet-name>
    <servlet-class>ru.pravvich.servlet.ProposesServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>AllProposes</servlet-name>
    <url-pattern>/all_proposes</url-pattern>
</servlet-mapping>

И возвращает jsp страницу таким образом:

public class ProposesServlet extends HttpServlet {
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        req.getRequestDispatcher("/WEB-INF/view/all_proposes.jsp")
                .forward(req, resp);
    }
}

Фильтр перенаправляет запросы из корня http://localhost:8080/, и я хотел чтобы после передачи управления, путь в браузере клиента выглядел http://localhost:8080/all_proposes, однако не смотря на то что страница в ответ приходит правильно, url на клиенте не меняется.

Можно ли как-то сделать что бы путь менялся без resp.sendRedirect(), так как лишних запросов тоже делать не хочется. И если это возможно то как?

Answer 1

Клиент в любом случае должен каким-то образом узнать о том, что сервер перенаправляет его, так, что без лишних "телодвижений" не обойтись.
Используйте redirect.

RequestDispatcher.forward() vs HttpServletResponse.sendRedirect()
Difference between JSP forward and redirect

READ ALSO
Как завершить проект в Android Studio?

Как завершить проект в Android Studio?

Как из проекта в Android Studio сделать apk-файл для скачивания на другие устройства?

466
Ошибка со StreamingConnection в Hive

Ошибка со StreamingConnection в Hive

Добрый день! Пытаюсь освоить StreamingConnection в Hive по документации

268
Как сжать видео под размер экрана.

Как сжать видео под размер экрана.

Красным это видеоЧерным это размер экрана телефона

298
Узнать последнюю дату прочтения файла

Узнать последнюю дату прочтения файла

Доброго времени сутокМожно ли узнать когда последний раз был прочитан определённый файл? Не создан, изменён, а именно прочитан

266