Java — Самоучитель

  • 15. Java — Массивы
  • 16. Java — Дата и время
  • 17. Java — Регулярные выражения
  • 18. Java — Методы
  • 21. Java — Вложенные и внутренние классы
  • 22. Java — Наследование
  • 23. Java — Переопределение
  • 24. Java — Полиморфизм
  • 25. Java — Абстракция
  • 26. Java — Инкапсуляция
  • 27. Java — Интерфейсы
  • 28. Java — Пакеты
  • 31. Java — Дженерики
  • 32. Java — Сериализация
  • 34. Java — Отправка Email
  • 36. Java — Основы работы с апплетами
  • 37. Java — Javadoc
  • 33.2. Java — Обработка URL

    URL обозначает унифицированный указатель ресурса и представляет ресурс во Всемирной компьютерной сети, такой как веб-страница или каталог FTP (протокол пересылки файлов).

    В этом разделе указано о том, как писать Java-программы, которые взаимодействуют с URL. URL может быть разбит на части, как указано ниже:

    protocol://host:port/path?query#ref

    Примеры протоколов включают HTTP (протокол передачи гипертекстовых файлов), HTTPS (протокол защищенной передачи гипертекстовой информации), FTP и файлов. Путь также называется именем файла, а хост также называется полномочием.

    Ниже приведен URL-адрес веб-страницы, протоколом которой является HTTP:

    https://www.amrood.com/index.htm?language=en#j2se

    Обратите внимание, что этот URL не указывает порт, и в этом случае используется порт по умолчанию для протокола. При HTTP порт по умолчанию - 80.

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

    Класс java.net.URL представляет URL и имеет полный набор методов для управления URL в Java.

    Класс URL имеет несколько конструкторов для создания URL, включая следующие:

    и описание
    1public URL(String protocol, String host, int port, String file) throws MalformedURLException
    public URL(URL context, String url) throws MalformedURLException
    2public URL(String protocol, String host, String file) throws MalformedURLException
    Идентичен предыдущему конструктору, за исключением того, что для данного протокола используется порт по умолчанию.
    3public URL(String url) throws MalformedURLException
    Создает URL путем заданной адресной строки.
    4public URL(URL context, String url) throws MalformedURLException
    Создает URL, анализируя аргументы URL и адресной строки.

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

    Класс URL содержит много методов для доступа к различным частям представляемого URL. Некоторые из методов в классе URL включают следующее:

    и описание
    1public String getPath()
    Возвращает путь URL.
    2public String getQuery()
    Возвращает часть запроса URL.
    3public String getAuthority()
    Возвращает полномочия URL.
    4public int getPort()
    Возвращает порт URL.
    5public int getDefaultPort()
    Возвращает порт по умолчанию протокола URL.
    6public String getProtocol()
    Возвращает протокол URL.
    7public String getHost()
    Возвращает хост URL.
    8public String getHost()
    Возвращает хост URL.
    9public String getFile()
    Возвращает имя файла URL.
    10public String getRef()
    Возвращает часть ссылки URL.
    11public URLConnection openConnection() throws IOException
    Открывает соединение с URL, позволяя клиенту взаимодействовать с ресурсом.

    Пример

    Следующая программа URLDemo демонстрирует различные части URL. URL вводится в командной строке, и программа URLDemo выводит данные каждой части данного URL.

    Live Demo
    // Название файла: URLDemo.java
    import java.net.*;
    import java.io.*;
    
    public class URLDemo {
    
       public static void main(String [] args) {
          try {
             URL url = new URL("https://www.amrood.com/index.htm?language=en#j2se");
             
             System.out.println("URL: " + url.toString());
             System.out.println("протокол: " + url.getProtocol());
             System.out.println("полномочия: " + url.getAuthority());
             System.out.println("имя файла: " + url.getFile());
             System.out.println("хост: " + url.getHost());
             System.out.println("путь: " + url.getPath());
             System.out.println("порт: " + url.getPort());
             System.out.println("порт по умолчанию: " + url.getDefaultPort());
             System.out.println("запрос: " + url.getQuery());
             System.out.println("ссылка: " + url.getRef());
          } catch (IOException e) {
             e.printStackTrace();
          }
       }
    }
    

    Пробный запуск этой программы даст следующий результат:

    URL: https://www.amrood.com/index.htm?language=en#j2se
    протокол: http
    полномочия: www.amrood.com
    имя файла: /index.htm?language=en
    хост: www.amrood.com
    путь: /index.htm
    порт: -1
    порт по умолчанию: 80
    запрос: language=en
    ссылка: j2se
    

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

    Метод openConnection() возвращает java.net.URLConnection, абстрактный класс, подклассы которого представляют различные типы подключений URL.

    Например:

    • Если вы подключаетесь к URL, протокол которого HTTP, метод openConnection() возвращает объект подключения HttpURL.
    • Если вы подключаетесь к URL, который представляет файл JAR (архивный файл приложения на языке Java), метод openConnection() возвращает объект подключения JarURL и т.д.

    У класса подключения URL есть много методов для установки или определения информации о соединении, включая следующие:

    и описание
    1Object getContent()
    Получает содержимое этого URL-соединения.
    2Object getContent(Class[] classes)
    Получает содержимое этого URL-соединения.
    3String getContentEncoding()
    Возвращает значение строки заголовка с кодировкой содержимого.
    4int getContentLength()
    Возвращает значение строки заголовка с длиной содержимого.
    5String getContentType()
    Возвращает значение строки заголовка с типом содержимого.
    6int getLastModified()
    Возвращает значение строки заголовка с последними изменениями.
    7long getExpiration()
    Возвращает значение строки заголовка, превышающее длину.
    8long getIfModifiedSince()
    Возвращает значение поля ifModifiedSince этого объекта.
    9public void setDoInput(boolean input)
    Передает true (истина), чтобы обозначить, что соединение будет использоваться для ввода. Значение по умолчанию - true, потому что клиенты обычно считывают из URL-соединения.
    10public void setDoOutput(boolean output)
    Передает true, чтобы обозначить, что соединение будет использоваться для вывода. Значение по умолчанию - false (ложь), поскольку многие типы URL не поддерживают запись.
    11public InputStream getInputStream() throws IOException
    Возвращает поток входных данных URL-соединения для считывания из ресурса.
    12public OutputStream getOutputStream() throws IOException
    Возвращает поток выходных данных URL-соединения для записи на ресурс.
    13public URL getURL()
    Возвращает URL, с которым связан данный объект URL-соединения.

    Пример

    Следующая программа URLConnectionDemo подключается к URL-адресу, введенному из командной строки.

    Если URL представляет ресурс HTTP, соединение преобразуется в HttpURL-соединение, и данные в ресурсе считываются по одной строке за раз.

    // File Name : URLConnDemo.java
    import java.net.*;
    import java.io.*;
    
    public class URLConnDemo {
    
       public static void main(String [] args) {
          try {
             URL url = new URL("https://www.amrood.com");
             URLConnection urlConnection = url.openConnection();
             HttpURLConnection connection = null;
             if(urlConnection instanceof HttpURLConnection) {
                connection = (HttpURLConnection) urlConnection;
             }else {
                System.out.println("Пожалуйста, введите HTTP URL.");
                return;
             }
             
             BufferedReader in = new BufferedReader(
                new InputStreamReader(connection.getInputStream()));
             String urlString = "";
             String current;
             
             while((current = in.readLine()) != null) {
                urlString += current;
             }
             System.out.println(urlString);
          } catch (IOException e) {
             e.printStackTrace();
          }
       }
    }
    

    Пробный запуск этой программы даст следующий результа:

    $ java URLConnDemo
    
    .....HTML-содержимое домашней страницы amrood.com.....
    
    Поделитесь:

    О сайте

    Все материалы сайта proglang.su являются результатом труда его авторов. Копирование материалов в некоммерческих целях без указания источника в виде прямой ссылки на сайт proglang.su запрещено. Использование материалов в коммерческих целях разрешено только с письменного согласия автора. Нарушение авторских прав преследуется по закону. Мы это делаем, чтобы защитить плоды своих трудов от воровства. © 2014-2019

    Присоединяйтесь


    Обратная связь