Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как из одного сервлета передать данные в другой? ОБЯЗАТЕЛЬНО методом POST 
V
    Опции темы
Dzo
Дата 11.6.2008, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 22.4.2008

Репутация: нет
Всего: 1



Собсно сабж.

Методом get я знаю как: 

Код

response.sendredirect(MyServlet?data1=value1);


А как методом POST?

Сессии, куки не актуально. Нужно  именно методом POST.

Это сообщение отредактировал(а) Dzo - 12.6.2008, 11:44
PM MAIL   Вверх
xeye
Дата 11.6.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.6.2008

Репутация: нет
Всего: 1



Цитата(Dzo @ 11.6.2008,  11:58)
А как методом POST?

Сессии, куки не актуально. Нужно  именно методом POST.

POST _редирект_ невозможен по http стандарту. 
можно просто из сервлета сделать post запрос. например, через HttpURLConnection, а затем надо будет куда-то все-таки перейти из основного сервлета.

вообще, нетипичность задачи говорит о том, что так делать не надо smile проблему следует решать с другой стороны.
для передачи данных между сервлетами в одном приложении есть другие средства.
PM MAIL   Вверх
Dzo
Дата 11.6.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 22.4.2008

Репутация: нет
Всего: 1



Какие средства?

RequestDispatcher?
PM MAIL   Вверх
AntonSaburov
Дата 11.6.2008, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Цитата(Dzo @  11.6.2008,  12:55 Найти цитируемый пост)
RequestDispatcher? 

Угу
PM MAIL WWW ICQ   Вверх
Dzo
Дата 12.6.2008, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 22.4.2008

Репутация: нет
Всего: 1



Пытаюсб передать данные между двумя сервлетами

Код


String msgText = "Hehehey!";
String type = "error";
String url = "/menuelements.jsp";
String parameters = "Set of parameters";
                
request.setAttribute("msgText", msgText);
request.setAttribute("type", type);
request.setAttribute("url", url);
request.setAttribute("parameters", parameters);
                
RequestDispatcher dispatcher = request.getRequestDispatcher("/Messages");
                
if (dispatcher == null) {
   System.out.println("Dispathcer is null");
} else {
dispatcher.forward(request, response);}



Принимающий Servlet:

Код


String messageType = request.getParameter("type");
        
System.out.println(messageType);
        
if (messageType.equals("done")) {
            createOKMessage(request, response);
} else {
createErrorMessage(request,response);
}



Вываливается NullPointerException на строку 

Код

if (messageType.equals("done")) {


следовательно параметр не передается. В чем хня?

Я читал втуториалах, что RequestDispatcher нужно вызывать до того, как потеряется содержание responsa. Кажется, что проблема в этом, объясните подробней : (
PM MAIL   Вверх
xeye
Дата 12.6.2008, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.6.2008

Репутация: нет
Всего: 1



Цитата(Dzo @ 12.6.2008,  10:21)
Я читал втуториалах, что RequestDispatcher нужно вызывать до того, как потеряется содержание responsa. Кажется, что проблема в этом, объясните подробней : (

если делаешь setAttribute то и читай его через getAttribute, а не как попало smile
PM MAIL   Вверх
Dzo
Дата 12.6.2008, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 22.4.2008

Репутация: нет
Всего: 1



Цитата(xeye @  12.6.2008,  10:29 Найти цитируемый пост)
а не как попало


 smile Вырыжает всю суть моего действа : )) Ыгыгы
PM MAIL   Вверх
koroplysov
Дата 8.4.2011, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 29.8.2009

Репутация: нет
Всего: нет



Я делал такое. Все очень просто. Формируется html страница где есть форма с инпутами или с чем там еще надо передать. В инпуты заполняем данные. Делаем обработчик страницы где прописываем нажатие на сабмит на JS. У меня было переделано в виде ссылки а не кнопка и там просто вызывается метод сабмит. Я поищу и выложу код.

Добавлено через 8 минут и 45 секунд
Короче формируй html страницу и отправляй пользователю. а body должно выглядеть так:
Код

<body  onload="javascript: document.name=FormName.submit(); return false;">


И все. При загрузке у пользователя сработает пост по соответствующему адресу. можно visible настроить чтоб не видели что отправляешь.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0690 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.