Главная > Программирования сетевых взаимодействий в 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.

Categories

1
email@scask.ru