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


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


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


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


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


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


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


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


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


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



Вихідний текст програми CGI store.exe

Вихідний текст програми CGI store.exe дуже простий і показаний у лістингу 9.

Лістинг 9. Файл store.c

#include <windows.h>#include <tchar.h>#include <wchar.h>#include <stdio.h>#include <stdlib.h>#include <string.h>void main(int argc, char *argv[]){ int nInDatasize; char * szMethod; char szBuf[2000]; FILE *fDatabase; CRITICAL_SECTION csAddRecord; szMethod = getenv("REQUEST_METHOD"); if(!strcmp(szMethod, "POST")); { nInDatasize = atoi(getenv("CONTENT_LENGTH")); fread(szBuf, nInDatasize, 1, stdin); szBuf[nInDatasize] = '\0'; InitializeCriticalSection(&csAddRecord); EnterCriticalSection(&csAddRecord); fDatabase = fopen("c:\\EMAIL.DAT", "a+"); if(fDatabase != NULL) { fputs(szBuf, fDatabase); fclose(fDatabase); } LeaveCriticalSection(&csAddRecord); DeleteCriticalSection(&csAddRecord); printf( " Content-type: text/plain\r\n\r\n"); printf("Stored information: %s", szBuf); }}

Цей текст підготовлений для роботи в середовищі Windows 95 або Windows NT, тому що для синхронізації доступу до файлу ми використовували специфічні для цих операційних систем функції роботи із критичними секціями.

Свою роботу програма CGI починає з аналізу змінного середовища REQUEST_METHOD. Переконавшись, що при запуску програми їй передали дані методом POST, програма визначає розмір цих даних виходячи із умісту змінного середовища CONTENT_LENGTH.

Далі програма зчитує відповідну кількість байт даних зі стандартного потоку вводу, записує їх у файл. Потім, після додавання заголовка "Stored information:", програма CGI записує отриманий рядок у стандартний вихідний потік, передаючи її в такий спосіб аплету Form.

Тому що при реальній роботі в мережі Internet вашу програму CGI можуть одночасно запустити трохи користувачів, для синхронізації відновлення файлу бази даних ми застосували критичну секцію. У результаті з файлом може працювати в будь-який момент часу тільки одна копія програми CGI.

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

 

Завдання:

На основі теоретичних відомостей приведених вище та в лекціях 17, 18, створити автономні додатки Java, які працюють із файлами й створюють мережні додатки.

 




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

<== попередня сторінка | наступна сторінка ==>
Опис вихідних текстів аплета Form | Теоретичні відомості

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

  

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


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