powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Applet2Servlet
8 сообщений из 8, страница 1 из 1
Applet2Servlet
    #32485556
MBasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, сломал голову пытаясь передать из аплета параметры сервлету.
В результате приведенных ниже манипуляций сервлет не получает никаих параметров и при выводе :
out.println("***" + request.getQueryString() + "***" );
out.println("len=" + request.getContentLength() );
вижу : ***null*** len=-1
Текст метода привожу полностью.
//----------------------------------------------
public void sendRequest()
{
String postData = null;
try{
postData = "bkid="
+ URLEncoder.encode(bookIDFld.getText(), "Cp1251" );
} catch(UnsupportedEncodingException exp ) {
showStatus("Cannot encode with Cp1251");
return;
}
URLConnection urlConn = null;
ObjectOutputStream oos = null;
try {
urlConn = httpURL.openConnection();
} catch(IOException es )
{ showStatus("Cannot create URLConnection"); }
urlConn.setAllowUserInteraction( true );
urlConn.setDoInput( true );
urlConn.setDoOutput( true );
urlConn.setUseCaches( false );
ByteArrayOutputStream byteStream = new ByteArrayOutputStream(512);
PrintWriter out = new PrintWriter( byteStream, true );
out.print( postData );
out.flush();
String lengthStr = String.valueOf( byteStream.size() );
// Здесь при проверке lengthStr="7", то есть видимо все в порядке.
urlConn.setRequestProperty( "Content-Length", lengthStr );
urlConn.setRequestProperty( "Content-Type",
"application/x-www-form-urlencoded");
try { // пишем, а куда ? Сервлет принимает запрос, генерирует
// страницу, но параметров не получает
byteStream.writeTo( urlConn.getOutputStream() );
getAppletContext().showDocument( httpURL );
}
catch( IOException ioe ) {}
}
...
Рейтинг: 0 / 0
Applet2Servlet
    #32487250
MBasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обнаружил, что мой сервлет при такой конструкции получает GET запрос, а не POST, как предполагалось.
Как заставить аплет отправить POST ?
Однако странно, делал ведь все, как описано у мистера Холла, а там предполагается, что при таком тексте будет POST ?
...
Рейтинг: 0 / 0
Applet2Servlet
    #32489005
MBasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С подсказки на другом форуме выяснилось.
Если из аплета мы обращаемся к сервлету для получения данных (через соответствующий поток) и отображаемых затем в аплете же, то вышеописанный механизм работает через POST без проблем.
Если же мы хотим ввести в аплете параметры запроса и получить "отчет" из JSP страницы, показываемый через showDocument() надо использовать GET и никак иначе. То есть в этом случае сервлет нельзя заставить "сожрать" POST без дополнительных "телодвижений".
...
Рейтинг: 0 / 0
Applet2Servlet
    #32489026
Грасоff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем это все надо? зачем из полей в аплете (которые с успехом можно заменить на поля в html) передавать данные сервлету?
...
Рейтинг: 0 / 0
Applet2Servlet
    #32489034
Грасоff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если надо: в аплете новый сокет, коннект на свой http-сервер, создается стандартный post-header, отправляется http-серверу (который это отдаст сервлету), сокет (в аплете) закрыть.
...
Рейтинг: 0 / 0
Applet2Servlet
    #32489998
MBasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Через POST я могу передать подготовленный к выполнению список критериев запроса и не заставлять сервлет "ползать" по HashTable за каждым параметром отдельно. Причем каждый критерий запроса это не простая строка, а объект.
Вообще говоря обсуждаемый вопрос важен с общей точки зрения. Рассматривая Java Server Faces мы видим тенденцию "вылезая из кожи вон" сделать клиента "сверхтонким" перенося всю обработку на сервер приложений. В идеале, в случае сложного клиента это приводит к повышению сетевого трафика. Не зря все примеры рассматриваются на уровне Интернет магазинов не только из-за типичности проблемной области, но и из-за отосительно простых действий клиента. Построить на этом механизме Интранет АРМ проблематично.
Каким-бы "кривым" механизм использования аплетов не был, мне кажется, что в их современном состоянии HTML формы задачи пока не решают. И ничего другого пока не вижу. Web Start требует инсталляции. И задача иметь полоностью мобильного клиента "средней толщины", которому не надо инсталлировать ничего кроме JRE по моему своей актуальности не утратила. А как Вы думаете ?
...
Рейтинг: 0 / 0
Applet2Servlet
    #32490192
Грасоff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а это не нравится?

а если надо: в аплете новый сокет, коннект на свой http-сервер, создается стандартный post-header, отправляется http-серверу (который это отдаст сервлету), сокет (в аплете) закрыть.
...
Рейтинг: 0 / 0
Applet2Servlet
    #32490430
MBasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Грасоff
Спасибо, попробую. Свой предыдущий текст писал до того, как увидел Ваше второе сообщение. Поэтому сразу не успел поблагодарить.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Applet2Servlet
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]