Spec-Zone .ru
спецификации, руководства, описания, API
|
Самый легкий способ создать a URL
объект от a String
это представляет удобочитаемую форму адреса URL. Это обычно - форма, которую другой человек будет использовать для URL. В Вашей программе Java можно использовать a String
содержа этот текст, чтобы создать a URL
объект:
URL myURL = new URL("http://example.com/");
URL
объект, создаваемый выше, представляет абсолютный URL. Абсолютный URL содержит всю информацию, необходимую, чтобы достигнуть рассматриваемого ресурса. Можно также создать URL
объекты от относительного адреса URL.
Относительный URL содержит только достаточную информацию, чтобы достигнуть ресурса относительно (или в контексте) другой URL.
Относительные спецификации URL часто используются в пределах файлов HTML. Например, предположите, что Вы пишете вызванный файл HTML JoesHomePage.html
. В пределах этой страницы, ссылки к другим страницам, PicturesOfMe.html
и MyKids.html
, это находится на той же самой машине и в том же самом каталоге как JoesHomePage.html
. Ссылки к PicturesOfMe.html
и MyKids.html
от JoesHomePage.html
мог быть определен как имена файлов, как это:
<a href="PicturesOfMe.html">Pictures of Me</a> <a href="MyKids.html">Pictures of My Kids</a>
Этими адресами URL являются относительные URL. Таким образом, URL определяются относительно файла, в котором они содержатся — JoesHomePage.html
.
В Ваших программах Java можно создать a URL
объект от относительной спецификации URL. Например, предположите, что Вы знаете два URL на сайте example.com
:
http://example.com/pages/page1.html http://example.com/pages/page2.html
Можно создать URL
объекты для этих страниц относительно их общего базового URL: http://example.com/pages/
как это:
URL myURL = new URL("http://example.com/pages/"); URL page1URL = new URL(myURL, "page1.html"); URL page2URL = new URL(myURL, "page2.html");
Этот фрагмент кода использует URL
конструктор, который позволяет Вам создавать a URL
объект от другого URL
объект (основа) и относительная спецификация URL. Общая форма этого конструктора:
URL(URL baseURL, String relativeURL)
Первым параметром является a URL
объект, который определяет основу нового URL
. Вторым параметром является a String
это определяет остальную часть имени ресурса относительно основы. Если baseURL
нуль, тогда этот конструктор обработки relativeURL
как абсолютная спецификация URL. Наоборот, если relativeURL
абсолютная спецификация URL, тогда конструктор игнорирует baseURL
.
Этот конструктор также полезен для создания URL
объекты для именованных привязок (также названный ссылками) в пределах файла. Например, предположите page1.html
файлу вызывали именованную привязку BOTTOM
у основания файла. Можно использовать относительного конструктора URL, чтобы создать a URL
объект для этого как это:
URL page1BottomURL = new URL(page1URL,"#BOTTOM");
URL
class предоставляет двум дополнительным конструкторам для того, чтобы они создали a URL
объект. Эти конструкторы полезны, когда Вы работаете с URL, такими как HTTP URL, у которых есть имя хоста, имя файла, номер порта, и ссылочные компоненты в части имени ресурса URL. Эти два конструктора полезны, когда у Вас нет Строки, содержащей полную спецификацию URL, но Вы действительно знаете различные компоненты URL.
Например, предположите, что Вы разрабатываете панель просмотра сети, подобную панели просмотра файла, которая позволяет пользователям выбирать протокол, имя хоста, номер порта, и имя файла. Можно создать a URL
от компонентов панели. Первый конструктор создает a URL
объект из протокола, имени хоста, и имени файла. Следующий фрагмент кода создает a URL
к page1.html
файл в example.com
сайт:
new URL("http", "example.com", "/pages/page1.html");
Это эквивалентно
new URL("http://example.com/pages/page1.html");
Первым параметром является протокол, вторым является имя хоста, и последним является путь файла. Отметьте, что имя файла содержит наклонную черту вправо вначале. Это указывает, что имя файла определяется от корня узла.
Финал URL
конструктор добавляет номер порта к списку параметров, используемых в предыдущем конструкторе:
URL gamelan = new URL("http", "example.com", 80, "pages/page1.html");
Это создает a URL
объект для следующего URL:
http://example.com:80/pages/page1.html
Если Вы создаете a URL
объект используя одного из этих конструкторов, можно получить a String
содержа полный URL адресуется при использовании URL
объект toString
метод или эквивалент toExternalForm
метод.
Некоторые адреса URL содержат специальные символы, например пробел. Как это:
http://example.com/hello world/
Чтобы сделать эти символы законными, они должны быть закодированы прежде, чем передать их конструктору URL.
URL url = new URL("http://example.com/hello%20world");
Кодирование специального символа (ов) в этом примере легко, поскольку есть только один символ, который нуждается в кодировании, но для адресов URL, у которых есть несколько из этих символов или если Вы неуверены при записи Вашего кода, к каким адресам URL Вы должны будете получить доступ, можно использовать конструкторов мультипараметра java.net.URI
class, чтобы автоматически заботиться о кодировании для Вас.
URI uri = new URI("http", "example.com", "/hello world/", "");
И затем преобразуйте URI в URL.
URL url = uri.toURL();
Каждый из четырех URL
конструкторы бросают a MalformedURLException
если параметры конструктору обращаются к a null
или неизвестный протокол. Как правило, Вы хотите поймать и обработать это исключение, встраивая Ваши операторы конструктора URL в a try
/catch
пара, как это:
try { URL myURL = new URL(...); } catch (MalformedURLException e) { // exception handler code here // ... }
См.
URL
s являются объектами "записи однажды". Как только Вы создали a URL
объект, невозможно изменить ни один из его атрибутов (протокол, имя хоста, имя файла, или номер порта).