Сетевые средства Java


Листинг 19.1. Получение Web-страницы - часть 2


Web-сервер возвращает информацию, запрошенную клиентом, вместе с заголовком, сведения из которого можно получить методами getxxxo, например:

  • getcontentType ()

    — возвращает строку типа string, показывающую тип пересланной информации, например, "text/html", или null, если сервер его не указал;

  • getcontentLength ()

    — возвращает длину полученной информации в байтах или — 1, если сервер ее не указал;

  • getcontent ()

    — возвращает полученную информацию в виде объекта типа Object;

  • getContentEncoding ()

    — возвращает строку типа string с кодировкой полученной информации, или null, если сервер ее не указал.

    Два метода возвращают потоки ввода/вывода, созданные для данного соединения:

    • getlnputStream()

      — возвращает входной поток типа InputStream; 

    • getOutputStream()

      — возвращает выходной поток типа OutputStream.

      Прочие методы, а их около двадцати, возвращают различные параметры соединения.

      Обращение к методу bhv.openstreamo, записанное в листинге 19.1, — это, на самом деле, сокращение записи

      bhv.openConnection().getlnputStream()

      В листинге 19.2 показано, как переслать строку текста по адресу URL.

      Web-сервер, который получает эту строку, не знает, что делать с полученной информацией. Занести ее в файл? Но с каким именем, и есть ли у него право создавать файлы? Переслать на другую машину? Но куда?

      Выход был найден в системе CGI (Common Gateway Interface), которая вкратце действует следующим образом. При посылке сообщения мы указываем URL исполнимого файла некоторой программы, размещенной на машине-сервере. Получив сообщение, Web-сервер запускает эту программу и передает сообщение на ее стандартный ввод. Вот программа-то и знает, что делать с полученным сообщением. Она обрабатывает сообщение и выводит результат обработки на свой стандартный вывод. Web-сервер подключается к стандартному выводу, принимает результат и отправляет его обратно клиенту.

      CGI-программу можно написать на любом языке: С, C++, Pascal, Perl, PHP, лишь бы у нее был стандартный ввод и стандартный вывод. Можно написать ее и на Java, но в технологии Java есть более изящное решение этой задачи с помощью сервлетов (servlets). CGI-программы обычно лежат на сервере в каталоге cgi-bin.




      - Начало -  - Назад -  - Вперед -



      Книжный магазин