| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > опять о сервлетах |
| Автор: piero 6.10.2002, 23:34 |
| Задача: с помощью сервлета незаметно для пользователя-клиента(т.е чтоб ещё одно окошко не открывалось) отправить на другую страничку(некую вполне определённую) форму с данными, затем на этой самой страничке эмулировать нажатие Submit. Пример: отправить через пейджинговый сайт сообщение. Вопрос: КАК? |
| Автор: Sun 8.10.2002, 02:48 |
| Тут надо скорее не с помощью сервлета а с помощью апплета или JavaScripta. То-есть можно попробовать создать форму со скрытыми полями <input type="hidden" name="..." value="..."> Дальше указать в action формы URL сервлета (или CGI-скрипта), который будет обрабатывать форму (отсылать сообщение на пейджер) и потом будет возвращать броузеру такую же страницу. А для того чтобы незаметно отсылалась форма нужно вызывать на какое-то событие метод формы submit(). Можно например на событие onLoad документа или на таймер. При этом если твой сервлет будет возвращать такую же по внешнему виду страницу что и страница из который он был вызван, то юзер даже ничего не должен заметить. |
| Автор: piero 11.10.2002, 02:44 |
| Это не совсем то, что мне надо. А надо, чтобы весящий где-то на севаке БЕЗ какого либо контроля соединялся с сайтами пейджинговых компаний и САМ через их веб-интерфейс слал мессаги, отправляя этим сайта заплненные формы с сообщением, номером абонента и т.д, т.е вопрос именно в том, как сервлетом послать туда ( а не юзеру) форму... |
| Автор: Sun 12.10.2002, 03:36 | ||
| Если у тебя юзер не принимает никакого участия, то в таком случае тебе достаточно написать класс с методом main(), который будет в бесконечном цикле или на события таймера будет вызывать скрипт пейджинговой компании с нужными параметрами (номер абонента, сообщение...) Для запуска и остановки твоего класса ты можешь использовать сервлет. В принципе можно объеденить их в один класс. Тo-есть нужно сделать что-то вроде:
Теперь нужно при помощи сервлета (или другим способом) запустить на сервере этот класс. Фактически тебе надо на сервере выполнить команду java <path_to_class/class_name> Остановить можно из сервлета путем вызова статического метода Server.end(); |
| Автор: piero 18.10.2002, 03:46 |
| Sun, sorry, но весь вопрос мой и состоит в том КАК всё-таки ВЫЗВАТЬ СКРИПТ пейджинговой компании...Его URL известен, но что делать дальше? |
| Автор: Sun 18.10.2002, 20:18 | ||
Вызывать скрипт совсем несложно. Есть несколько способов это сделать. Можешь попробовать использовать класс URL
Здесь хитрость в том, что ты открываешь входной поток и требуешь от ВЕБ-сервера выдать тебе нужный документ (фактически вызываешь метод GET), только на самом деле ты запускаешь скрипт с параметрами. Параметры передаются в виде ?subject="Hello, world!"&message="Some message" Проверь - будет ли такая штука работать (я не проверял). Но теоретически она должна запустить на сервере твой скрипт. |
| Автор: piero 23.10.2002, 19:01 |
| Наверное, не is.read(); a while(is.available()) is.read; ? или я не прав? |
| Автор: Sun 24.10.2002, 19:26 |
| На самом деле нужно лишь вызвать скрипт, а read позволяет тебе получить ответ от сервера в виде HTML-документа (в принципе ты можешь считать этот ответ в буфер и дальше его анализировать - скажем писать в лог-файл интересующую тебя информацию, а можешь смело сливать все это в /dev/null) |
| Автор: piero 25.10.2002, 17:46 |
| Поэкспериментировал с несколькими сайтами пейджеров, не смог никак выяснить имя скрипта. Не подскажешь, как это делается? |