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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> опять о сервлетах 
:(
    Опции темы
piero
  Дата 6.10.2002, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Задача: с помощью сервлета незаметно для пользователя-клиента(т.е чтоб ещё одно окошко не  открывалось) отправить на другую страничку(некую вполне определённую) форму с данными, затем на этой самой страничке эмулировать нажатие Submit. Пример: отправить через пейджинговый сайт сообщение.
Вопрос: КАК?
PM MAIL   Вверх
Sun
Дата 8.10.2002, 02:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

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



Тут надо скорее не с помощью сервлета а с помощью апплета или JavaScripta. То-есть можно попробовать создать форму со скрытыми полями
<input type="hidden" name="..." value="...">
Дальше указать в action формы URL сервлета (или CGI-скрипта), который будет обрабатывать форму (отсылать сообщение на пейджер) и потом будет возвращать броузеру такую же страницу.
А для того чтобы незаметно отсылалась форма нужно вызывать на какое-то событие метод формы submit(). Можно например на событие onLoad документа или на таймер.
При этом если твой сервлет будет возвращать такую же по внешнему виду страницу что и страница из который он был вызван, то юзер даже ничего не должен заметить. :)


--------------------
Account removed
PM MAIL   Вверх
piero
Дата 11.10.2002, 02:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Это не совсем то, что мне надо. А надо, чтобы весящий где-то на севаке БЕЗ какого либо контроля соединялся с сайтами пейджинговых компаний и САМ через их веб-интерфейс слал мессаги, отправляя этим сайта заплненные формы с сообщением, номером абонента и т.д, т.е вопрос именно в том, как сервлетом послать туда ( а не юзеру) форму... :notify  Заранее спасибо!
PM MAIL   Вверх
Sun
Дата 12.10.2002, 03:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

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



Если у тебя юзер не принимает никакого участия, то в таком случае тебе достаточно написать класс с методом main(), который будет в бесконечном цикле или на события таймера будет вызывать скрипт пейджинговой компании с нужными параметрами (номер абонента, сообщение...)
Для запуска и остановки твоего класса ты можешь использовать сервлет. В принципе можно объеденить их в один класс. Тo-есть нужно сделать что-то вроде:
Код

public class Server extends Thread {
public static boolean flag = false;
public Server() {
super("Server");
flag = true;
}
public static void main(String [] args) throws Exception {
Server newServer = new Server();
newServer.start();
}
public void run() {
while (flag) {
//здесь ты вставляешь код вызова пейджера
//если надо - ставишь задержку
...
}
}
public static void end() {
flag = false;
}
}


Теперь нужно при помощи сервлета (или другим способом) запустить на сервере этот класс. Фактически тебе надо на сервере выполнить команду
java <path_to_class/class_name>
Остановить можно из сервлета путем вызова статического метода Server.end();


--------------------
Account removed
PM MAIL   Вверх
piero
Дата 18.10.2002, 03:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Sun, sorry, но весь вопрос мой и состоит в том КАК всё-таки
ВЫЗВАТЬ СКРИПТ пейджинговой компании...Его URL известен,
но что делать дальше?  :notify
PM MAIL   Вверх
Sun
Дата 18.10.2002, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

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



Вызывать скрипт совсем несложно. Есть несколько способов это сделать. Можешь попробовать использовать класс URL
Код

URL url = new URL("<path to script>/<script name>?<parameters>");
InputStream is = url.openStream();
is.read();

Здесь хитрость в том, что ты открываешь входной поток и требуешь от ВЕБ-сервера выдать тебе нужный документ (фактически вызываешь метод GET), только на самом деле ты запускаешь скрипт с параметрами.
Параметры передаются в виде
?subject="Hello, world!"&message="Some message"
Проверь - будет ли такая штука работать (я не проверял). Но теоретически она должна запустить на сервере твой скрипт.


--------------------
Account removed
PM MAIL   Вверх
piero
Дата 23.10.2002, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Наверное, не is.read(); a while(is.available()) is.read; ? или я не прав?
PM MAIL   Вверх
Sun
Дата 24.10.2002, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

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



На самом деле нужно лишь вызвать скрипт, а read позволяет тебе получить ответ от сервера в виде HTML-документа (в принципе ты можешь считать этот ответ в буфер и дальше его анализировать - скажем писать в лог-файл интересующую тебя информацию, а можешь смело сливать все это в /dev/null) :)


--------------------
Account removed
PM MAIL   Вверх
piero
Дата 25.10.2002, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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


 




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


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

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