как отправить переменные с помощью sendRedirect () [duplicate]

1

используя метод forward() я могу "отправлять" переменные, используя request.setAttribute().

Что делать, если я должен использовать sendRedirect() вместо? Как я могу "отправить" переменную на целевую страницу?

Мне не нравится делать что-то вроде этого: sendRedirect("page?varName=varValues"), мне не нравится видеть имена переменных и значения, записанные в браузере.

Есть ли способ отправить переменные скрытым способом при использовании sendRedirect()?

спасибо

  • 3
    Вы могли бы хотеть занять время, чтобы прочитать это
Теги:
jsp
servlets

3 ответа

1

Теоретически мы не можем отправить запрос POST с помощью sendRedirect().

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

Например:

HttpSession session = request.getSession(false);

session.setAttribute("parameter", "parameter");

response.sendRedirect("/page");
0

Возможным способом является установка в сеансе, как что-то ниже,

session.setAttribute("varName", "value");
response.sendRedirect("/resultPage");

Это будет перенаправлено на страницу результатов, и вы можете получить значение из сеанса как,

session.getAttribute("varName");

объект session будет доступен через приложение, пока вы не аннулируете его вручную.

Причина, по которой RequestDispatcher forward() содержит объект запроса, заключается в том, что он пересылает один и тот же запрос, а sendRedirect() не делает этого, потому что он каждый раз создает новый запрос

Выучить больше..

0

Вы можете установить атрибут в session а не request чтобы вы могли получить доступ к нему с перенаправленной страницы. Но есть несколько решений.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню