Оглавление

Сетевые приложения
Адрес IP
Адрес URL
Класс URL
Сокеты
Потоковые сокеты
Класс Socket
Датаграммные сокеты
Связь с Web
Аплет ShowChart
Приложения SocketServ и SocketClient
Аплет Form<

    Класс URL в библиотеке классов Java

    Для работы с ресурсами, заданными своими адресами URL, в библиотеке классов Java имеется очень удобный и мощный класс с названием URL. Простота создания сетевых приложений с использованием этого класса в значительной степени опровергает общераспространенное убеждение в сложности сетевого программирования. Инкапсулируя в себе достаточно сложные процедуры, класс URL предоставляет в распоряжение программиста небольшой набор простых в использовании конструкторов и методов.

    Конструкторы класса URL

    Сначала о конструкторах. Их в классе URL имеется четыре штуки.

    public URL(String spec);

    Первый из них создает объект URL для сетевого ресурса, адрес URL которого передается конструктору в виде текстовой строки через единственный параметр spec:

    public URL(String spec);

    В процессе создания объекта проверяется заданный адрес URL, а также наличие указанного в нем ресурса. Если адрес указан неверно или заданный в нем ресурс отсутствует, возникает исключение MalformedURLException. Это же исключение возникает при попытке использовать протокол, с которым данная система не может работать.

    Второй вариант конструктора класса URL допускает раздельное указание протокола, адреса узла, номера порта, а также имя файла:

    public URL(String protocol, 
      String host, int port, String file);

    Третий вариант предполагает использование номера порта, принятого по умолчанию:

    public URL(String protocol,
      String host, String file);

    Для протокола HTTP это порт с номером 80.

    И, наконец, четвертый вариант конструктора допускает указание контекста адреса URL и строки адреса URL:

    public URL(URL context, String spec);

    Строка контекста позволяет указывать компоненты адреса URL, отсустсвующие в строке spec, такие как протокол, имя узла, файла или номер порта.

    Методы класса URL

    Рассмотрим самые интересные методы, определенные в классе URL.

    Метод openStream

    Метод openStream позволяет создать входной поток для чтения файла ресурса, связанного с созданным объектом класса URL:

    public final InputStream openStream();

    Для выполнения операции чтения из созданного таким образом потока вы можете использовать метод read, определенный в классе InputStream (любую из его разновидностей).

    Данную пару методов (openStream из класса URL и read из класса InputStream) можно применить для решения задачи получения содержимого двоичного или текстового файла, хранящегося в одном из каталогов сервера Web. Сделав это, обычное приложение Java или аплет может выполнить локальную обработку полученного файла на компьютере удаленного пользователя.

    Метод getContent

    Очень интересен метод getConten. Этот метод определяет и получает содержимое сетевого ресурса, для которого создан объект URL:

    public final Object getContent();

    Практически вы можете использовать метод getContent для получения текстовых файлов, расположенных в сетевых каталогах.

    К сожалению, данный метод непригоден для получения документов HTML, так как для данного ресурса не определен обработчик соедржимого, предназначенный для создания объекта. Метод getContent не способен создать объект ни из чего другого, кроме текстового файла.

    Данная проблема, тем не менее, решается очень просто - достаточно вместо метода getContent использовать описанную выше комбинацию методов openStream из класса URL и read из класса InputStream.

    Метод getHost

    С помощью метода getHost вы можете определить имя узла, соответствующего данному объекту URL:

    public String getHost();

    Метод getFile

    Метод getFile позволяет получить информацию о файле, связанном с данным объектом URL:

    public String getFile();

    Метод getPort

    Метод getPortt предназначен для определения номера порта, на котором выполняется связь для объекта URL:

    public int getPort();

    Метод getProtocol

    С помощью метода getProtocol вы можете определить протокол, с использованием которого установлено соединение с ресурсом, заданным объектом URL:

    public String getProtocol();

    Метод getRef

    Метод getRef возвращает текстовую строку ссылки на ресурс, соответствующий данному объекту URL:

    public String getRef();

    Метод hashCode

    Метод hashCode возвращает хэш-код объекта URL:

    public int hashCode();

    Метод sameFile

    С помощью метода sameFile вы можете определить, ссылаются ли два объекта класса URL на один и тот же ресурс, или нет:

    public boolean sameFile(URL other);

    Если объекты ссылаются на один и тот же ресурс, метод sameFile возвращает значение true, если нет - false.

    Метод equals

    Вы можете использовать метод equals для определения идентичности адресов URL, заданных двумя объектами класса URL:

    public boolean equals(Object obj);

    Если адреса URL идентичны, метод equals возвращает значение true, если нет - значение false.

    Метод toExternalForm

    Метод toExternalForm возвращает текстовую строку внешнего представления адреса URL, определенного данным объектом класса URL:

    public String toExternalForm();

    Метод toString

    Метод toString возвращает текстовую строку, представляющую данный объект класса URL:

    public String toString();

    Метод openConnection

    Метод openConnection предназначен для создания канала между приложением и сетевым ресурсом, представленным объектом класса URL:

    public URLConnection openConnection();

    Если вы создаете приложение, которое позволяет читать из каталогов сервера Web текстовые или двоичные файлы, можно создать поток методом openStream или получить содержимое текстового ресурса методом getContent.

    Однако есть и другая возможность. Вначале вы можете создать канал, как объект класса URLConnection, вызвав метод openConnection, а затем создать для этого канала входной поток, воспользовавшись методом getInputStream, определенным в классе URLConnection. Такая методика позволяет определить или установить перед созданием потока некоторые характеристики канала, например, задать кэширование.

    Однако самая интересная возможность, которую предоставляет этот метод, заключается в организации взаимодействия приложения Java и сервера Web.



Java | Продукты и решения | Технологии | Сервис и обучение
О компании | Партнеры | Новости | Поиск
Sun Microsystems Inc. Corporate Information Our partners News and Events Search on site Java Computing Products and Solutions Technologies and Researches Education and Service Content



Сайт создан в системе uCoz