Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class URL extends Object implements Serializable
URL
представляет Универсальный Локатор Ресурса, указатель на "ресурс" во всемирной паутине. Ресурс может быть чем-то столь же простым как файлом или каталогом, или это может быть ссылка на более сложный объект, такой как запрос к базе данных или к поисковой системе. Больше информации о типах URL и их форматов может быть найдено в:Вообще, URL может быть поврежден в несколько частей. Рассмотрите следующий пример:
http://www.example.com/docs/resource1.html
URL выше указывает, что протокол, чтобы использовать http
(Протокол передачи HyperText) и что информация находится на названной хост-машине www.example.com
. Информацию о той хост-машине называют /docs/resource1.html
. Точное значение этого имени на хост-машине и зависимо от протокола и зависимый узел. Информация обычно находится в файле, но она могла быть сгенерирована на лету. Этот компонент URL вызывают компонентом пути.
URL может дополнительно определить "порт", который является номером порта, к которому соединение TCP делается на удаленной хост-машине. Если порт не определяется, порт значения по умолчанию для протокола используется вместо этого. Например, порт значения по умолчанию для http
80
. Альтернативный порт мог быть определен как:
http://www.example.com:1080/docs/resource1.html
Синтаксис URL
определяется
URL, возможно, добавил к этому "фрагмент", также известный как "касательно" или "ссылка". Фрагмент обозначается резким символом знака "#" сопровождаемый большим количеством символов. Например,
http://java.sun.com/index.html#chapter1
Этот фрагмент не является технически частью URL. Скорее это указывает, что после того, как указанный ресурс получается, приложение определенно интересуется той частью документа, у которого есть тег chapter1
присоединенный к этому. Значение тега является определенным ресурсом.
Приложение может также определить "относительный URL", который содержит только достаточную информацию, чтобы достигнуть ресурса относительно другого URL. Относительные URL часто используются в пределах страниц HTML. Например, если содержание URL:
содержавший в пределах этого относительный URL:http://java.sun.com/index.html
это было бы сокращение для:FAQ.html
http://java.sun.com/FAQ.html
Относительный URL не должен определить все компоненты URL. Если протокол, имя хоста, или номер порта отсутствуют, значение наследовано от полностью указанного URL. Компонент файла должен быть определен. Дополнительный фрагмент не наследован.
URL class самостоятельно не кодирует или декодирует компоненты URL согласно механизму выхода, определенному в RFC2396. Это - обязанность вызывающей стороны закодировать любые поля, которых нужно оставить до вызова URL, и также декодировать любые оставленные поля, которые возвращаются из URL. Кроме того, потому что у URL нет никакого знания выхода URL, он не распознает эквивалентность между закодированной или декодируемой формой того же самого URL. Например, эти два URL:
http://foo.com/hello world/ and http://foo.com/hello%20worldсчитался бы не равным друг другу.
Отметьте, URI
class действительно выполняет выход своих компонентных полей при определенных обстоятельствах. Рекомендуемый способ управлять кодированием и декодированием URL состоит в том, чтобы использовать URI
, и преобразовать между этими двумя классами использование toURI()
и URI.toURL()
.
URLEncoder
и URLDecoder
классы могут также использоваться, но только для кодирования HTML-формы, которое не является тем же самым как схемой кодирования, определенной в RFC2396.
Конструктор и Описание |
---|
URL(String spec)
Создает a
URL объект от String представление. |
URL(String protocol, String host, int port, String file)
Создает a
URL объект от указанного protocol , host , port число, и file . |
URL(String protocol, String host, int port, String file, URLStreamHandler handler)
Создает a
URL объект от указанного protocol , host , port число, file , и handler . |
URL(String protocol, String host, String file)
Создает URL из указанного
protocol имя, host имя, и file имя. |
URL(URL context, String spec)
Создает URL, анализируя данную спецификацию в пределах указанного контекста.
|
URL(URL context, String spec, URLStreamHandler handler)
Создает URL, анализируя данную спецификацию с указанным обработчиком в пределах указанного контекста.
|
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
equals(Object obj)
Сравнивает этот URL для равенства с другим объектом.
|
Строка |
getAuthority()
Получает часть полномочий этого
URL . |
Объект |
getContent()
Получает содержание этого URL.
|
Объект |
getContent(Class[] classes)
Получает содержание этого URL.
|
int |
getDefaultPort()
Получает номер порта значения по умолчанию протокола, связанного с этим
URL . |
Строка |
getFile()
Получает имя файла этого
URL . |
Строка |
getHost()
Получает имя хоста этого
URL , если применимый. |
Строка |
getPath()
Получает часть пути этого
URL . |
int |
getPort()
Получает номер порта этого
URL . |
Строка |
getProtocol()
Получает имя протокола этого
URL . |
Строка |
getQuery()
Получает часть запроса этого
URL . |
Строка |
getRef()
Получает привязку (также известный как "ссылка") этого
URL . |
Строка |
getUserInfo()
Получает userInfo часть этого
URL . |
int |
hashCode()
Создает целое число, подходящее для индексации хэш-таблицы.
|
URLConnection |
openConnection()
Возвраты a
URLConnection экземпляр, который представляет соединение с удаленным объектом, упомянутым URL . |
URLConnection |
openConnection(Proxy proxy)
То же самое как
openConnection() , за исключением того, что соединение будет сделано через указанный прокси; обработчики Протокола, которые не поддерживают proxing, проигнорируют параметр прокси и сделают нормальное соединение. |
InputStream |
openStream()
Открывает соединение с этим
URL и возвраты InputStream для того, чтобы читать из того соединения. |
boolean |
sameFile(URL other)
Сравнивает два URL, исключая компонент фрагмента.
|
static void |
setURLStreamHandlerFactory(URLStreamHandlerFactory fac)
Устанавливает приложение
URLStreamHandlerFactory . |
Строка |
toExternalForm()
Создает строковое представление из этого
URL . |
Строка |
toString()
Создает строковое представление из этого
URL . |
URI |
toURI()
Возвраты a
URI эквивалентный этому URL. |
public URL(String protocol, String host, int port, String file) throws MalformedURLException
URL
объект от указанного protocol
, host
, port
число, и file
.
host
может быть выражен как имя хоста или литеральный IP-адрес. Если адрес литерала IPv6 используется, он должен быть включен в квадратные скобки ('[' и ']'), как определено
Определение a port
число -1
указывает, что URL должен использовать порт значения по умолчанию для протокола.
Если это - первый объект URL, создаваемый с указанным протоколом, потоковым объектом-обработчиком протокола, экземпляром class URLStreamHandler
, создается для того протокола:
URLStreamHandlerFactory
как потоковая фабрика обработчиков, тогда createURLStreamHandler
метод того экземпляра вызывают со строкой протокола как параметр, чтобы создать потоковый обработчик протокола. URLStreamHandlerFactory
был все же установлен, или если фабрика createURLStreamHandler
возвраты метода null
, тогда конструктор находит значение системного свойства: Если значение того системного свойства неjava.protocol.handler.pkgs
null
, это интерпретируется как список пакетов, разделенных вертикальным символом наклонной черты'|
'. Конструктор пытается загрузить названный class: где <пакет> заменяется именем пакета, и <протокол> заменяется именем протокола. Если этот class не существует, или если class существует, но это не подкласс<package>.<protocol>.Handler
URLStreamHandler
, тогда следующий пакет в списке пробуют. Если этот class не существует, или если class существует, но это не подкласс<system default package>.<protocol>.Handler
URLStreamHandler
, тогда a MalformedURLException
бросается. Обработчики протокола для следующих протоколов, как гарантируют, будут существовать на пути поиска:-
Обработчики протокола для дополнительных протоколов могут также быть доступными.http, https, file, and jar
Никакая проверка допустимости вводов не выполняется этим конструктором.
protocol
- имя протокола, чтобы использовать.host
- имя узла.port
- номер порта на узле.file
- файл на узлеMalformedURLException
- если неизвестный протокол определяется.System.getProperty(java.lang.String)
, setURLStreamHandlerFactory( java.net.URLStreamHandlerFactory)
, URLStreamHandler
, URLStreamHandlerFactory.createURLStreamHandler( java.lang.String)
public URL(String protocol, String host, String file) throws MalformedURLException
protocol
имя, host
имя, и file
имя. Порт значения по умолчанию для указанного протокола используется. Этот метод эквивалентен вызову конструктора с четырьмя параметрами с параметрами быть protocol
, host
, -1
, и file
. Никакая проверка допустимости вводов не выполняется этим конструктором.
protocol
- имя протокола, чтобы использовать.host
- имя узла.file
- файл на узле.MalformedURLException
- если неизвестный протокол определяется.URL(java.lang.String, java.lang.String, int, java.lang.String)
public URL(String protocol, String host, int port, String file, URLStreamHandler handler) throws MalformedURLException
URL
объект от указанного protocol
, host
, port
число, file
, и handler
. Определение a port
число -1
указывает, что URL должен использовать порт значения по умолчанию для протокола. Определение a handler
из null
указывает, что URL должен использовать потоковый обработчик значения по умолчанию для протокола, как обрисовано в общих чертах для: java.net.URL#URL (java.lang. Строка, java.lang. Строка, интервал, java.lang. Строка) Если обработчик не является нулем и есть менеджер безопасности, менеджер безопасности checkPermission
метод вызывают с a NetPermission("specifyStreamHandler")
разрешение. Это может привести к SecurityException. Никакая проверка допустимости вводов не выполняется этим конструктором.
protocol
- имя протокола, чтобы использовать.host
- имя узла.port
- номер порта на узле.file
- файл на узлеhandler
- потоковый обработчик для URL.MalformedURLException
- если неизвестный протокол определяется.SecurityException
- если менеджер безопасности существует и checkPermission
метод не позволяет определять потоковый обработчик явно.System.getProperty(java.lang.String)
, setURLStreamHandlerFactory( java.net.URLStreamHandlerFactory)
, URLStreamHandler
, URLStreamHandlerFactory.createURLStreamHandler( java.lang.String)
, SecurityManager.checkPermission(java.security.Permission)
, NetPermission
public URL(String spec) throws MalformedURLException
URL
объект от String
представление. Этот конструктор эквивалентен звонку в конструктора с двумя параметрами с a null
первый параметр.
spec
- String
проанализировать как URL.MalformedURLException
- если никакой протокол не определяется, или неизвестный протокол находится, или spec является null.URL(java.net.URL, java.lang.String)
public URL(URL context, String spec) throws MalformedURLException
Ссылка анализируется в схему, полномочия, путь, запрос и части фрагмента. Если компонент пути пуст и схема, полномочия, и компоненты запроса неопределены, то новый URL является ссылкой на действующий документ. Иначе, фрагмент и части запроса, существующие в спецификации, используются в новом URL.<scheme>://<authority><path>?<query>#<fragment>
Если компонент схемы определяется в данной спецификации и не соответствует схему контекста, то новый URL создается как абсолютный URL, основанный на одной только спецификации. Иначе компонент схемы наследован от контекста URL.
Если компонент полномочий присутствует в спецификации тогда, спецификация обрабатывается как абсолютная и полномочия спецификации, и путь заменит полномочия контекста и путь. Если компонент полномочий будет отсутствовать в спецификации тогда, то полномочия нового URL будут наследованы от контекста.
Если компонент пути спецификации начинается с символа наклонной черты "/" тогда, путь обрабатывается как абсолютный, и путь спецификации заменяет путь контекста.
Иначе, путь обрабатывается как относительный путь и добавляется к пути контекста, как описано в RFC2396. Кроме того, в этом случае путь канонизируется посредством удаления изменений каталога, произведенных происшествиями ".." и".".
Для более подробного описания парсинга URL обратитесь к RFC2396.
context
- контекст, в котором можно проанализировать спецификацию.spec
- String
проанализировать как URL.MalformedURLException
- если никакой протокол не определяется, или неизвестный протокол находится, или spec является null.URL(java.lang.String, java.lang.String, int, java.lang.String)
, URLStreamHandler
, URLStreamHandler.parseURL(java.net.URL, java.lang.String, int, int)
public URL(URL context, String spec, URLStreamHandler handler) throws MalformedURLException
context
- контекст, в котором можно проанализировать спецификацию.spec
- String
проанализировать как URL.handler
- потоковый обработчик для URL.MalformedURLException
- если никакой протокол не определяется, или неизвестный протокол находится, или spec является null.SecurityException
- если менеджер безопасности существует и checkPermission
метод не позволяет определять потоковый обработчик.URL(java.lang.String, java.lang.String, int, java.lang.String)
, URLStreamHandler
, URLStreamHandler.parseURL(java.net.URL, java.lang.String, int, int)
public String getQuery()
URL
.URL
, или null
если Вы не существуетеpublic String getPath()
URL
.URL
, или пустая строка, если Вы не существуетеpublic String getUserInfo()
URL
.URL
, или null
если Вы не существуетеpublic String getAuthority()
URL
.URL
public int getPort()
URL
.public int getDefaultPort()
URL
. Если схема URL или URLStreamHandler для URL не определяют номер порта значения по умолчанию, то-1 возвращается.public String getProtocol()
URL
.URL
.public String getHost()
URL
, если применимый. Формат узла соответствует RFC 2732, то есть для литерального адреса IPv6, этот метод возвратит адрес IPv6, включенный в квадратные скобки ('[' и ']').URL
.public String getFile()
URL
. Возвращенная часть файла будет тем же самым как getPath()
, плюс связь значения getQuery()
, если любой. Если нет никакой части запроса, этого метода и getPath()
возвратит идентичные результаты.URL
, или пустая строка, если Вы не существуетеpublic String getRef()
URL
.URL
, или null
если Вы не существуетеpublic boolean equals(Object obj)
Если данным объектом не является URL тогда, этот метод сразу возвращается false
.
Два объекта URL равны, если они имеют тот же самый протокол, узлы стандартного эквивалента, имеют тот же самый номер порта на узле, и тот же самый файл и фрагмент файла.
Два узла считают эквивалентными, если оба имени хоста могут быть разрешены в те же самые IP-адреса; еще, если любое имя хоста не может быть разрешено, имена хоста должны быть равными без отношения, чтобы случиться; или оба имени хоста, равные нулю.
Так как сравнение узлов требует разрешения имени, эта работа является работой блокирования.
Отметьте: определенное поведение для equals
как известно, непоследователен с виртуальным хостингом в HTTP.
equals
в class Object
obj
- URL, чтобы сравниться с.true
если объекты являются тем же самым; false
иначе.Object.hashCode()
, HashMap
public int hashCode()
Хэш-код основан на всех компонентах URL, важных для сравнения URL. Также, эта работа является работой блокирования.
hashCode
в class Object
URL
.Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public boolean sameFile(URL other)
Возвраты true
если это URL
и other
параметр равен, не принимая компонент фрагмента во внимание.
other
- URL
сравниться с.true
если они ссылаются на тот же самый удаленный объект; false
иначе.public String toString()
URL
. Строка создается, вызывая toExternalForm
метод потокового обработчика протокола для этого объекта.toString
в class Object
URL(java.lang.String, java.lang.String, int, java.lang.String)
, URLStreamHandler.toExternalForm(java.net.URL)
public String toExternalForm()
URL
. Строка создается, вызывая toExternalForm
метод потокового обработчика протокола для этого объекта.URL(java.lang.String, java.lang.String, int, java.lang.String)
, URLStreamHandler.toExternalForm(java.net.URL)
public URI toURI() throws URISyntaxException
URI
эквивалентный этому URL. Этот метод функционирует таким же образом как new URI (this.toString())
. Отметьте, любой экземпляр URL, который выполняет RFC 2396, может быть преобразован в URI. Однако, некоторые URL, которые не находятся строго в соответствии, не могут быть преобразованы в URI.
URISyntaxException
- если этот URL не форматируется строго согласно к RFC2396 и не может быть преобразован в URI.public URLConnection openConnection() throws IOException
URLConnection
экземпляр, который представляет соединение с удаленным объектом, упомянутым URL
. Новый экземпляр URLConnection создается каждый раз, вызывая URLStreamHandler.openConnection (URL) метод обработчика протокола для этого URL.
Нужно отметить, что экземпляр URLConnection не устанавливает фактическое сетевое соединение на создании. Это произойдет только, вызывая URLConnection.connect ().
Если для протокола URL (такого как HTTP или JAR), там существует общественность, специализированный подкласс URLConnection, принадлежащий одному из следующих пакетов или одному из их подпакетов: java.lang, java.io, java.util, java.net, возвращенное соединение будет иметь тот подкласс. Например, для HTTP HttpURLConnection будет возвращен, и для JAR будет возвращен JarURLConnection.
URLConnection
соединение с URL.IOException
- если исключение ввода-вывода происходит.URL(java.lang.String, java.lang.String, int, java.lang.String)
public URLConnection openConnection(Proxy proxy) throws IOException
openConnection()
, за исключением того, что соединение будет сделано через указанный прокси; обработчики Протокола, которые не поддерживают proxing, проигнорируют параметр прокси и сделают нормальное соединение. Вызов этого метода вытесняет настройки ProxySelector значения по умолчанию системы.proxy
- Прокси, через который будет сделано это соединение. Если прямая связь требуется, Прокси. NO_PROXY должен быть определен.URLConnection
к URL.IOException
- если исключение ввода-вывода происходит.SecurityException
- если менеджер безопасности присутствует, и у вызывающей стороны нет разрешения, чтобы соединиться с прокси.IllegalArgumentException
- будет брошен, если прокси будет нулем, или у прокси есть неправильный типUnsupportedOperationException
- если подкласс, который реализует обработчик протокола, не поддерживает этот метод.URL(java.lang.String, java.lang.String, int, java.lang.String)
, URLConnection
, URLStreamHandler.openConnection(java.net.URL, java.net.Proxy)
public final InputStream openStream() throws IOException
URL
и возвраты InputStream
для того, чтобы читать из того соединения. Этот метод является сокращением для: openConnection().getInputStream()
IOException
- если исключение ввода-вывода происходит.openConnection()
, URLConnection.getInputStream()
public final Object getContent() throws IOException
openConnection().getContent()
IOException
- если исключение ввода-вывода происходит.URLConnection.getContent()
public final Object getContent(Class[] classes) throws IOException
openConnection().getContent(Class[])
classes
- массив типов JavaIOException
- если исключение ввода-вывода происходит.URLConnection.getContent(Class[])
public static void setURLStreamHandlerFactory(URLStreamHandlerFactory fac)
URLStreamHandlerFactory
. Однажды этот метод можно вызвать самое большее в данной виртуальной машине Java. URLStreamHandlerFactory
экземпляр используется, чтобы создать потоковый обработчик протокола из имени протокола.
Если есть менеджер безопасности, этот метод первые вызовы менеджер безопасности checkSetFactory
метод, чтобы гарантировать работу позволяется. Это могло привести к SecurityException.
fac
- требуемая фабрика.Error
- если приложение уже установило фабрику.SecurityException
- если менеджер безопасности существует и checkSetFactory
метод не позволяет работу.URL(java.lang.String, java.lang.String, int, java.lang.String)
, URLStreamHandlerFactory
, SecurityManager.checkSetFactory()
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92