Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
 break;

          // Отображаем принятую строку
          System.out.println(str);
        }

        // Закрываем входной поток
        is.close();

      }
    }
    catch(Exception ioe)
    {
      System.out.println(ioe.toString());
    }
    
    try
    {
      System.out.println(
        "Press  to terminate application...");

      System.in.read(bKbdInput);
    }
    catch(Exception ioe)
    {
      System.out.println(ioe.toString());
    }
  }
}
   Описание исходного текста приложения CallCGI
   Внутри метода main мы определили несколько переменных.
   Массив bKbdInput предназначен для хранения строки, введенной с помощью 
клавиатуры. В переменную length записывается длина этой строки.
   Строка str класса String используется в качестве рабочей.
   Переменная u класса URL предназначена для хранения ссылки на объект URL, 
созданный для загрузочного файла программы CGI.
   Ссылка на канал связи с программой CGI хранится в переменной с  именем 
c класса URLConnection.
   Переменные ps класса PrintStream и is класса DataInputStream хранят ссылки, 
соответственно, на выходной и входной потоки, через которые наше приложение 
обменивается данными с программой CGI.
   После вывода приглашения на консоль наша программа вводит строку, которая 
будет передана программе CGI:
length = System.in.read(bKbdInput);
   Далее массив bKbdInput преобразуется в строку str и перекодируется в 
кодировку URL. Эта кодировка была описана нами в 29 томе “Библиотеки системного 
программиста”. Она выполняется с помощью статического метода encode, 
определенного в классе URLEncoder:
String StrEncoded = URLEncoder.encode(str);
   Перекодированная строка отображается на консоли:
System.out.println("Encoded string: >" + StrEncoded + "<");
   На следующем этапе наше приложение создает объект класса URL для 
загрузочного файла программы CGI:
u = new URL("http://frolov/frolov-cgi/controls.exe");
   Здесь предполагается, что программа CGI находится в файле controls.exe, 
который записан в виртуальный каталог frolov-cgi на сервере Web с адресом 
http://frolov). Про создание и настройку виртуальных каталогов для размещения 
расширений сервера Web мы рассказали в  29 томе “Библиотеки системного 
программиста”.
   После создания объекта класса URL мы создаем канал с программой CGI как 
объект класса URLConnection:
c = u.openConnection();
   Пользуясь этим каналом, мы вначале получаем выходной поток методом 
getOutputStream, а затем на его базе создаем форматированный выходной поток 
класса PrintStream, удобный для записи в него текстовых строк:
ps = new PrintStream(c.getOutputStream());
   Через канал ps наше приложение передает программе CGI строку StrEncoded, а 
затем закрывает выходной поток, как это показано ниже:
ps.println(StrEncoded);
ps.close();
   В этот момент на сервере Web уже запущена программа CGI, и она приняла 
переданные ей данные. Обработав эти данные, программа CGI записала в 
стандартный выходной поток динамически созданный ей документ HTML.
   Для получения документа наше приложение CallCGI создала входной 
форматированный поток данных:
is = new DataInputStream(c.getInputStream());
   Входной поток создан в два приема. Вначале с помощью метода getInputStream 
приложение создала обычный входной поток, а затем, на его базе, форматированный 
входной поток к
 
<<-[Весь Текст]
Страница: из 275
 <<-