Класс URLStreamHandler
public abstract class URLStreamHandler extends Object
URLStreamHandler является общим суперклассом для всех обработчиков потоковых протоколов. Обработчик потокового протокола знает, как установить соединение для определённого типа протокола, например http или https. В большинстве случаев экземпляр подкласса URLStreamHandler не создаётся непосредственно приложением. Вместо этого при первом обнаружении имени протокола во время создания URL автоматически загружается соответствующий обработчик потокового протокола.
- С версии:
- 1.0
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
URLStreamHandler() |
Конструктор для вызова из подклассов. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected boolean |
equals |
Предоставляет реализацию вычисления equals по умолчанию. |
protected int |
getDefaultPort() |
Возвращает порт по умолчанию для URL, разобранного этим обработчиком. |
protected InetAddress |
getHostAddress |
Получает IP-адрес нашего хоста. |
protected int |
hashCode |
Предоставляет реализацию вычисления хеш-кода по умолчанию. |
protected boolean |
hostsEqual |
Сравнивает компоненты хоста двух URL. |
protected abstract URLConnection |
openConnection |
Открывает соединение с объектом, на который ссылается аргумент URL. |
protected URLConnection |
openConnection |
То же, что и openConnection(URL), за исключением того, что соединение будет установлено через указанный прокси-сервер; обработчики протоколов, не поддерживающие прокси-серверы, проигнорируют параметр прокси-сервера и установят обычное соединение. |
protected void |
parseURL |
Разбирает строковое представление URL в объект URL. |
protected boolean |
sameFile |
Сравнивает два URL, чтобы определить, ссылаются ли они на один и тот же файл, то есть имеют одинаковые протокол, хост, порт и путь. |
protected void |
setURL |
Устарело. Используйте setURL(URL, String, String, int, String, String, String, String); |
protected void |
setURL |
Устанавливает поля аргумента URL в указанные значения. |
protected String |
toExternalForm |
Преобразует URL определённого протокола в String. |
Подробное описание конструкторов
URLStreamHandler
public URLStreamHandler()
Подробное описание методов
openConnection
protected abstract URLConnection openConnection(URL u) throws IOException
URL. Этот метод следует переопределить в подклассе. Если для протокола обработчика (например, HTTP или JAR) существует общедоступный специализированный подкласс URLConnection, принадлежащий одному из следующих пакетов или их подпакетов: java.lang, java.io, java.util, java.net, возвращаемое соединение будет экземпляром этого подкласса. Например, для HTTP будет возвращён HttpURLConnection, а для JAR — JarURLConnection.
- Параметры:
-
u— URL, с которым устанавливается соединение. - Возвращает:
- объект
URLConnectionдляURL. - Исключения:
-
IOException— если при открытии соединения произошла ошибка ввода-вывода.
openConnection
protected URLConnection openConnection(URL u, Proxy p) throws IOException
Вызов этого метода имеет приоритет над настройками системного ProxySelector.
- Требования к реализации:
- Реализация этого метода по умолчанию сначала проверяет, что переданные
URLиProxyне равны null, а затем выбрасываетUnsupportedOperationException. Подклассам следует переопределить этот метод, предоставив подходящую реализацию. - Параметры:
-
u— URL, с которым устанавливается соединение. -
p— прокси-сервер, через который будет установлено соединение. Если требуется прямое соединение, следует указать Proxy.NO_PROXY. - Возвращает:
- объект
URLConnectionдляURL. - Исключения:
-
IOException— если при открытии соединения произошла ошибка ввода-вывода. -
IllegalArgumentException— если u или p равно null либо p имеет неверный тип. -
UnsupportedOperationException— если подкласс, реализующий протокол, не поддерживает этот метод. - С версии:
- 1.5
parseURL
protected void parseURL(URL u, String spec, int start, int limit)
URL в объект URL. Если имеется унаследованный контекст, он уже скопирован в аргумент URL.
Метод parseURL класса URLStreamHandler разбирает строковое представление так, как если бы оно было спецификацией http. Большинство семейств протоколов URL используют аналогичный синтаксис разбора. Обработчик потокового протокола с иным синтаксисом должен переопределить эту процедуру.
- Параметры:
-
u—URL, в который следует поместить результат разбора спецификации. -
spec—String, представляющий URL, который необходимо разобрать. -
start— индекс символа, с которого следует начать разбор. Он указывает на символ сразу после «:» (если он есть), задающего начало имени протокола. -
limit— позиция символа, на которой следует остановить разбор. Это конец строки или позиция символа «#», если он присутствует. Вся информация после знака решётки обозначает якорь. - Исключения:
-
IllegalArgumentException— если реализация обработчика протокола отклоняет любой из переданных параметров -
NullPointerException— еслиuравноnullили еслиstart < limitиspecравноnull
getDefaultPort
protected int getDefaultPort()
- Возвращает:
- порт по умолчанию для
URL, разобранного этим обработчиком. - С версии:
- 1.3
equals
protected boolean equals(URL u1, URL u2)
- Параметры:
-
u1— объект URL -
u2— объект URL - Возвращает:
-
true, если два URL считаются равными, то есть ссылаются на один и тот же фрагмент в одном и том же файле. - С версии:
- 1.3
hashCode
protected int hashCode(URL u)
- Параметры:
-
u— объект URL - Возвращает:
int, подходящий для индексирования в хеш-таблице- С версии:
- 1.3
sameFile
protected boolean sameFile(URL u1, URL u2)
- Параметры:
-
u1— объект URL -
u2— объект URL - Возвращает:
- true, если u1 и u2 ссылаются на один и тот же файл
- С версии:
- 1.3
getHostAddress
protected InetAddress getHostAddress(URL u)
- Параметры:
-
u— объект URL - Возвращает:
InetAddress, представляющий IP-адрес хоста.- С версии:
- 1.3
hostsEqual
protected boolean hostsEqual(URL u1, URL u2)
- Параметры:
-
u1— URL первого хоста для сравнения -
u2— URL второго хоста для сравнения - Возвращает:
-
true, если и только если они равны, иfalseв противном случае. - С версии:
- 1.3
toExternalForm
protected String toExternalForm(URL u)
URL определённого протокола в String.- Параметры:
-
u— URL. - Возвращает:
- строковое представление аргумента
URL.
setURL
protected void setURL(URL u, String protocol, String host, int port, String authority, String userInfo, String path, String query, String ref)
URL в указанные значения. Только классы, производные от URLStreamHandler, могут использовать этот метод для установки значений полей URL.- Параметры:
-
u— URL для изменения. -
protocol— имя протокола. -
host— значение удалённого хоста для URL. -
port— порт на удалённом компьютере. -
authority— часть authority URL. -
userInfo— часть userInfo URL. -
path— компонент пути URL. -
query— часть query URL. -
ref— ссылка. - Исключения:
-
SecurityException— если обработчик протокола URL отличается от текущего -
IllegalArgumentException— если реализация обработчика протокола отклоняет любой из переданных параметров -
NullPointerException— еслиuравноnull - С версии:
- 1.3
setURL
@Deprecated protected void setURL(URL u, String protocol, String host, int port, String file, String ref)
URL в указанные значения. Только классы, производные от URLStreamHandler, могут использовать этот метод для установки значений полей URL.- Параметры:
-
u— URL для изменения. -
protocol— имя протокола. Это значение игнорируется начиная с версии 1.2. -
host— значение удалённого хоста для URL. -
port— порт на удалённом компьютере. -
file— файл. -
ref— ссылка. - Исключения:
-
SecurityException— если обработчик протокола URL отличается от текущего -
IllegalArgumentException— если реализация обработчика протокола отклоняет любой из переданных параметров -
NullPointerException— еслиuравноnull
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/URLStreamHandler.html