Как я могу выполнить перенаправление на стороне сервера из устаревшего сервлета в 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);