Использование RequestDispatcher для пересылки на ту же страницу, с которой отправляется запрос

#jsp #servlets

#jsp #сервлеты

Вопрос:

У меня есть сервлет, который называется «LoginServlet», index.jsp, который имеет форму входа (имя пользователя и пароль). Я отправил запрос в LoginServlet и использовал:

 getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
  

Чтобы вернуться к index.jsp с именем пользователя и пользовательской информацией (для отображения приветствия XXX в правом верхнем углу экрана). Проблема в том, что я не могу использовать $ {RequestScope.userName} для извлечения имени пользователя. Имя пользователя просто не существует в запросе. Однако, когда я отправил на другую страницу jsp, она получила запрос с новой информацией, и я смог ее восстановить.

Я хочу знать, есть ли способ перенаправить на ту же страницу, на которую отправляется запрос? Я просто не могу получить данные, отправленные с сервлета на ту же страницу, т. Е. для входа пользователя в систему

Комментарии:

1. Очевидно, у вас уже есть ответ. В чем теперь вопрос?

2. Я хочу знать, есть ли способ перенаправить на ту же страницу, на которую отправляется запрос. Я просто не могу получить данные, отправленные с сервлета на ту же страницу, т. Е. для входа пользователя в систему.

3. Ах да, это был вопрос (пожалуйста, добавьте его в свой пост в ясном и кратком предложении с «?» в конце, которое подводит итог конкретной проблеме). Что касается конкретной проблемы, вы рассмотрели область действия сеанса? Обычно пользователь, вошедший в систему, сохраняется User в области сеанса, поскольку это используется для проверки, вошел ли в систему какой-либо пользователь или нет (чтобы вы могли заблокировать или разрешить доступ в классе Filter).

4. Ну, это просто пример. Мне требуется использовать RequestScope для передачи данных, а не просто для входа в систему, чтобы минимизировать нагрузку, за исключением таких вещей, как корзина покупок.