Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Опис вихідних текстів аплета Form

При ініціалізації метод init створює всі необхідні органи керування й додає їх у вікно аплета.

Коли користувач заповнює форму й натискає кнопку Send, оброблювач відповідної події викликає метод startTransaction, що запускає процес обміну даними з розширенням сервера Web:

if(evt.target.equals(btnGetText)){ startTransaction();}

Метод startTransaction, певний у нашім додатку, створює й запускає на виконання потік, що і буде взаємодіяти із програмою CGI:

void startTransaction(){ m_store = new Thread(this); m_store.start();}

При цьому як окремий потік, що працює одночасно з кодом аплета, виступає метод run. Саме в ньому зосереджена вся логіка обміну даними із сервером Web.

Тому що в процесі взаємодії можуть виникати різні виключення, ми передбачили їхню обробку за допомогою блоку try-catch:

URL u;URLConnection c;PrintStream ps;DataInputStream is; try{ . . .}catch (Exception ioe){ showStatus(ioe.toString()); stop();}

Назва виниклого виключення буде відображено в рядку стану браузера.

Тепер про те, що робить метод run після одержання керування.

Першою справою він витягає з однорядкових текстових полів ім'я й електронна адреса, поєднуючи їх і записуючи отриманий текстовий рядок у поле szSourceStr:

String szSourceStr = txtName.getText() + ", " + txtEMail.getText();

У рядку szURL перебуває адреса URL програми CGI:

String szURL = "http://frolov/scripts/store.exe";

У реальному додатку ця адреса необхідно передавати аплету через параметр. Ми використовували безпосереднє кодування тільки для спрощення вихідного тексту.

На наступному етапі метод run створює для програми CGI об'єкт класу URL і відкриває з ним з'єднання:

u = new URL(szURL);c = u.openConnection();

Користуючись цим з'єднанням, метод run створює форматований потік виводу, записує в нього рядок ім'я й електронної адреси, а потім закриває потік:

ps = new PrintStream(c.getOutputStream());ps.println(szSourceStr);ps.close();

Передані в такий спосіб дані потраплять у стандартний потік вводу програми CGI, звідки вона їх і прочитає.

Зробивши це, програма CGI запише в стандартний вихідний потік рядок відповіді, яку необхідно прочитати в методі run нашого аплета. Для цього ми відкриваємо вхідний потік, створюємо на його основі форматований вхідний потік даних, читаємо один рядок тексту й закриваємо вхідний потік:

is = new DataInputStream(c.getInputStream());String szReceived;szReceived = is.readLine();is.close();

Відразу після цього програма CGI завершить свою роботу й буде готова до обробки нових запитів на додавання записів. Що ж стосується методу run, те він додасть отриману від розширення сервера текстовий рядок у багатострокове вікно редагування, як це показано нижче, а потім ініціює перемальовування вікна аплета:

txta.appendText(szReceived + "\r\n");repaint();

Помітимо, що використаний нами спосіб передачі даних підходить тільки для латинських символів. Якщо вам потрібно передавати символи кирилиці, варто перетворювати їх з кодування UNICODE, наприклад, у гексадецимальне кодування, а в програмі CGI виконувати зворотне перетворення. Аналогічну методику можна застосовувати й для передачі довільних двійкових даних.




Переглядів: 287

<== попередня сторінка | наступна сторінка ==>
Вихідні тексти аплета Form | Вихідний текст програми CGI store.exe

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.005 сек.