|
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 определяется , исправленный . Литеральный формат адреса IPv6 также поддерживает scope_ids. Синтаксис и использование scope_ids описываются здесь.
URL, возможно, добавил к этому "фрагмент", также известный как "касательно" или "ссылка". Фрагмент обозначается резким символом знака "#" сопровождаемый большим количеством символов. Например,
http://java.sun.com/index.html#chapter1
Этот фрагмент не является технически частью URL. Скорее это указывает, что после того, как указанный ресурс получается, приложение определенно интересуется той частью документа, у которого есть тег chapter1 присоединенный к этому. Значение тега является определенным ресурсом.
Приложение может также определить "относительный URL", который содержит только достаточную информацию, чтобы достигнуть ресурса относительно другого URL. Относительные URL часто используются в пределах страниц HTML. Например, если содержание URL:
http://java.sun.com/index.html
содержавший в пределах этого относительный URL:
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 используется, он должен быть включен в квадратные скобки ('[' и ']'), как определено ; Однако, литеральный формат адреса IPv6 определил в также принимается.
Определение a port число -1 указывает, что URL должен использовать порт значения по умолчанию для протокола.
Если это - первый объект URL, создаваемый с указанным протоколом, потоковым объектом-обработчиком протокола, экземпляром class URLStreamHandler, создается для того протокола:
URLStreamHandlerFactory как потоковая фабрика обработчиков, тогда createURLStreamHandler метод того экземпляра вызывают со строкой протокола как параметр, чтобы создать потоковый обработчик протокола. URLStreamHandlerFactory был все же установлен, или если фабрика createURLStreamHandler возвраты метода null, тогда конструктор находит значение системного свойства:
java.protocol.handler.pkgs
Если значение того системного свойства не null, это интерпретируется как список пакетов, разделенных вертикальным символом наклонной черты'|'. Конструктор пытается загрузить названный class:
<package>.<protocol>.Handler
где <пакет> заменяется именем пакета, и <протокол> заменяется именем протокола. Если этот class не существует, или если class существует, но это не подкласс URLStreamHandler, тогда следующий пакет в списке пробуют.
<system default package>.<protocol>.Handler
Если этот class не существует, или если class существует, но это не подкласс 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), NetPermissionpublic 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
<scheme>://<authority><path>?<query>#<fragment>
Ссылка анализируется в схему, полномочия, путь, запрос и части фрагмента. Если компонент пути пуст и схема, полномочия, и компоненты запроса неопределены, то новый URL является ссылкой на действующий документ. Иначе, фрагмент и части запроса, существующие в спецификации, используются в новом URL. Если компонент схемы определяется в данной спецификации и не соответствует схему контекста, то новый 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.URLpublic 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 Objectobj - URL, чтобы сравниться с.true если объекты являются тем же самым; false иначе.Object.hashCode(), HashMappublic int hashCode()
Хэш-код основан на всех компонентах URL, важных для сравнения URL. Также, эта работа является работой блокирования.
hashCode в class ObjectURL.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 ObjectURL(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