Как я могу выполнить перенаправление на стороне сервера из устаревшего сервлета в JSF 2.0?

В настоящее время я делаю перенаправление на стороне клиента, чтобы перейти от устаревшего сервлета (старая часть приложения) к странице JSF (новая часть приложения). Я бы предпочел выполнить перенаправление на стороне сервера, если это возможно, чтобы я мог поместить в запрос элементы, которые может получить страница JSF. (существует набор данных, который необходимо "передать" между устаревшим сервлетом и страницей JSF, и я предпочитаю не помещать их в URL-адрес перенаправления на стороне клиента (в качестве параметров URL-адреса), а вместо этого делать это на сервере. боковая сторона).

Если есть способ выполнить перенаправление на стороне сервера между сервлетом (не сервлетом Faces) и страницей JSF, подскажите, пожалуйста, как?

1 ответ

Решение

Просто позвони RequestDispatcher#forward() обычный способ. Все сервлеты перехватывают и на перенаправленные запросы. Вам просто нужно убедиться, что прямой путь соответствует FacesServlet отображение. Предполагая, что вы нанесли на карту это *.xhtml, это должно сделать:

request.getRequestDispatcher("/page.xhtml").forward(request, response);

Страницу можно при необходимости разместить в /WEB-INF папку, если вы хотите, чтобы конечные пользователи не могли открыть ее напрямую, не вызывая сначала сервлет.

request.getRequestDispatcher("/WEB-INF/page.xhtml").forward(request, response);
Другие вопросы по тегам