Отправка нескольких значений из сервлета в JSP - PullRequest
1 голос
/ 14 декабря 2010

У меня есть код сервлета, где я проверяю имя пользователя и пароль в классе помощника, и после проверки он возвращается к сервлету и выводит список пользователей.Имя пользователя вместе со списком пользователей должно отображаться в JSP.Как отправить оба значения?Вот код, который я пробовал.Ничего не отображается String outp = t.Welcome (name, pwd);

String Users=t.List_Of_Users();
String User[]=Users.trim().split(" ");
request.setAttribute("name", User);
response.sendRedirect("Welcome_User.jsp?Users="+User+"&outp="+outp);

Ответы [ 4 ]

3 голосов
/ 14 декабря 2010

response.sendRedirect() очистит буфер, что, очевидно, означает, что любые ранее установленные атрибуты запроса не будут сохранены.

В вашем случае, я полагаю, лучше использовать RequestDispatcher.forward() после установки желаемых атрибутов в объекте запроса.

NB. По договоренности вы должны определять имена переменных, начиная с маленькой буквы. Например, String user; вместо String User;. Во-вторых, имена методов не должны использовать подчеркивания. Кроме того, я хотел бы предложить очевидные имена. Ниже приведен ваш фрагмент с небольшим переименованием.

String userNamesStr =t.userNamesSpaceDelimited();
String[] userNameArr = userNamesStr.trim().split(" "); // Or userNames, but we usually follow this for List
2 голосов
/ 14 декабря 2010

Вы можете установить столько атрибутов, сколько хотите, а также позаботиться об оптимизации.,

request.setAttribute("key1", Object1);
request.setAttribute("key2", Object2);
request.setAttribute("key3", Object3);
.
.
.
request.setAttribute("keyn", Objectn);

затем

String destination = "/WEB-INF/pages/result.jsp";
RequestDispatcher rd = getServletContext().getRequestDispatcher(destination);
rd.forward(request, response);
2 голосов
/ 14 декабря 2010
  • Если вы используете переадресацию (request.getRequestDispatcher("welcome_user.jsp").forward()) - просто добавьте еще request.setAttribute("attrName", value);
  • , если сохраняете перенаправление - добавьте еще один параметр get.Welcome_User.jsp?Users="+User+"&outp="+outp + "&another=" + another; (и удалите request.setAttribute(..))

Чтобы представить массив в виде строки, у вас есть несколько вариантов.Одним из них является Arrays.toString(array)

(обратите внимание, что отправка пароля в качестве параметра get является проблемой безопасности.)

0 голосов
/ 11 сентября 2014
String[] values = getParameterValues(“Input Parameter”);

попробуй это. Подробнее об этом методе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...