Главная > Программирование > Программирования сетевых взаимодействий в Java
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

1.5. Класс URL

URL обеспечивает довольно четкую форму уникальной идентификации адресной информации в Web. Внутри библиотеки классов Java класс URL представляет простой согласованный программный интерфейс для доступа к информации по всей сети Internet посредством использования URL.

Все URL разделяют один и тот же базовый формат, хотя и допускающий некоторые вариации. Приведем два примера: http://www.ulstu.ru/ и http:// www.ulstu.ru:80/index.htm. Спецификация URL основана на четырех компонентах. Первый - используемый протокол, отделяемый от остальной части локатора двоеточием. Распространенными протоколами являются HTTP, FTP, gopher и file, хотя в наши дни почти все осуществляется через HTTP (фактически большинство браузеров корректно работают, даже если вы исключите из спецификации URL фрагмент "http://"). Второй компонент - имя хоста или IP-адрес, используемый хостом; он отделяется слева двойным слэшем (//), а справа - слэшем (/) или, необязательно - двоеточием (:). Третий компонент — номер порта, является необязательным параметром, отделяемым слева от имени хоста двоеточием, а справа - слэшем (/) (Если 80 является портом по умолчанию для протокола HTTP, то указывать ":80" излишне.) Четвертая часть — действительный путь к файлу. Большинство серверов HTTP добавляют имя файла index. html или index. htm к URL, которые указывают непосредственно на какой-то каталог. Таким образом, http://www.ulstu.ru/ - это то же самое, что и http://www.ulstu.ru//index.htm.

Java-класс URL имеет несколько конструкторов. Каждый из них может возбуждать исключение MalformedURLException.

URL(String urlSpecifier) throws MalformedURLException

Следующие две формы конструктора позволяют вам разбить URL на части-компоненты:

URL(String protocolName, String hostName, int port, String path) throws MalformedURLException

URL(String protocolName, String hostName, String path) throws MalformedURLException

Другой часто используемый конструктор позволяет указывать существующий URL в качестве ссылочного контекста, и затем создать из этого контекста новый URL. Хотя это звучит несколько запутано, на самом деле это очень просто и удобно.

URL(URL urlObj, String urlSpecifier) throws MalformedURLException

Следующий пример создает URL страницы загрузки ulstu, а затем просматривает его свойства:

// Демонстрация применения URL. import java.net.*;

class URLDemo {

    public static void main(String args[]) throws MalformedURLException {

        URL hp = new URL("http://www.ulstu.ru/");             System.out.println("Протокол: " + hp.getProtocol ());

        System.out.println("Порт: " + hp.getPort());

        System.out.println("Хост: " + hp.getHost ());

        System.out.println("Файл: " + hp.getFile());

        System.out.println("Целиком: " + hp.toExternalForm());

    }

}

Запустив это, вы получите:

Протокол: http Порт: -1

Хост: www.ulstu.ru Файл: /

Целиком: http://www.ulstu.ru/

Обратите внимание на порт -1; это означает, что порт явно не установлен. Передав объект URL, вы можете извлечь данные, ассоциированные с ним. Чтобы получить доступ к действительным битам или информации по URL, создайте из него объект URLConnection, используя его метод openConnection(), как показано ниже:

urlc = url.openConnection()

openConnection() имеет следующую общую форму:

URLConnection openConnection() throws IOException

Он возвращает объект URLConnection, ассоциированный с вызывающим объектом URL. Обратите внимание, что он может возбуждать исключение IOException.

<< Предыдущий параграф Следующий параграф >>