Использование request.setAttribute на странице JSP

Можно ли использовать request.setAttribute на странице JSP, а 9X_jre затем при отправке HTML получить тот же 9X_jee атрибут запроса в Servlet?

24
0
6
Общее количество ответов: 6

Ответ #1

Ответ на вопрос: Использование request.setAttribute на странице JSP

Нет. К сожалению, объект Request доступен 9X_javax только до тех пор, пока страница не загрузится 9X_core-java - после ее завершения вы потеряете все значения 9X_java в нем, если они не были где-то сохранены.

Если 9X_core-java вы хотите сохранять атрибуты в запросах, вам 9X_core-java необходимо:

  1. Используйте скрытый ввод в вашей форме, например " />. Затем он будет доступен в сервлете в качестве параметра запроса.
  2. Поместите его в сеанс (см. request.getSession() - в JSP это доступно просто как session)

Я рекомендую использовать сеанс, так 9X_.java как им легче управлять.

26
1

  • ну, скажем так - сеанс, вероятно, лучше, чем все, что вы пишете сами :) Если вы используете приличный сервер приложений, он может выполнять репликацию и т. д., и у вас есть варианты х ...

Ответ #2

Ответ на вопрос: Использование request.setAttribute на странице JSP

Ответ Фила Сакре был правильным, однако 9X_jdk сеанс не следует использовать просто так. Вы 9X_oraclejdk должны использовать это только для значений, которые 9X_jee действительно должны действовать на протяжении всего 9X_j2se сеанса, таких как логин пользователя. Часто 9X_oraclejdk можно увидеть, как люди злоупотребляют сеансом 9X_java-ee-web-profile и сталкиваются с большим количеством проблем, особенно 9X_java-ee при работе с коллекцией или когда пользователи 9X_core-java возвращаются на страницу, которую они ранее 9X_.java посещали, только для того, чтобы обнаружить, что 9X_java-ee у них есть значения, оставшиеся от предыдущего 9X_java-ee-web-profile посещения. Умная программа максимально минимизирует 9X_javax объем переменных, плохая - слишком много 9X_j2ee использует сеанс.

4
0

Ответ #3

Ответ на вопрос: Использование request.setAttribute на странице JSP

Если вы хотите, чтобы ваши запросы не прекращались, попробуйте 9X_j2se следующее:

пример: на странице JSP или сервлета

request.getSession().setAttribute("SUBFAMILY", subFam); 

и 9X_java-ee на любой принимающей странице используйте 9X_java следующие строки для получения вашего сеанса 9X_jdk и данных:

SubFamily subFam = (SubFamily)request.getSession().getAttribute("SUBFAMILY"); 

4
0

Ответ #4

Ответ на вопрос: Использование request.setAttribute на странице JSP

Вы можете сделать это с помощью атрибутов 9X_java-se pageContext, однако:

В JSP:

 <% String s="opportunity";
pageContext.setAttribute("opp", s, PageContext.APPLICATION_SCOPE); %> 

В сервлете (связанный 9X_jre с шаблоном URL "Enter.do"):

String s=(String) request.getServletContext().getAttribute("opp"); 

Существуют и 9X_request-object другие области помимо APPLICATION_SCOPE, например 9X_jee SESSION_SCOPE. APPLICATION_SCOPE используется 9X_java для атрибутов ServletContext.

4
0

Ответ #5

Ответ на вопрос: Использование request.setAttribute на странице JSP

Попробуйте

request.getSession().setAttribute("SUBFAMILY", subFam); request.getSession().getAttribute("SUBFAMILY"); 

9X_jakarta-ee

2
0

Ответ #6

Ответ на вопрос: Использование request.setAttribute на странице JSP

Поправьте меня, если ошиблись ... Я думаю, что 9X_java-ee запрос сохраняется между последовательными 9X_core-java страницами ..

Думаю, вы переходите со страницы 9X_jee 1 -> страницы 2 -> страницы 3

У вас есть 9X_jee какое-то значение, установленное в объекте 9X_java запроса с помощью setAttribute со страницы 9X_jdk 1, которое вы извлекаете на странице 2 с 9X_setattribute помощью getAttribute, а затем, если вы попытаетесь 9X_j2se снова установить что-то в том же объекте 9X_j2se запроса, чтобы получить его на странице 9X_java-libraries 3, он не даст вам null значение как «запрос, который 9X_javax создал JSP, и запрос, который создается 9X_java-ee-web-profile при отправке JSP, являются совершенно разными 9X_java-se запросами, и любые атрибуты, помещенные 9X_core-java в первый из них, не будут доступны во втором».

Я 9X_java-se имею в виду, что что-то вроде этого на странице 9X_java-se 2 не работает:

Где то же самое сработало 9X_j2se в случае страницы 1, например:

Поэтому я 9X_setattribute думаю, что мне нужно будет выбрать один 9X_oraclejdk из двух вариантов, предложенных Филом.

1
0