|
|
|
Работаем с URL и ссылками
|
|||
|---|---|---|---|
|
#18+
Всем привет!!! Вопрос следующего содержания: например, имеется URL: http://anyhost.com/anypart/page.html. и есть например ссылка (href) какой-нибудь: '../anypart2/page2.html' или просто 'page4.html'. Соответственно, если я пытаюсь создать URL: URL url = new URL(и сюда кидаю эти ссылки), то происходит исключение MalformedURLException. я понимаю, что самому все сделать не сложно, но зачем изобретать велосипед, если возможно уже есть то, что позволяет это сделать. может ли кто-нибудь подсказать какую нибудь либу? спасибо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 15:56:38 |
|
||
|
Работаем с URL и ссылками
|
|||
|---|---|---|---|
|
#18+
этот эксцепшен бросается, если ты не соблюдаешь формат, вот, к примеру, нормально работает... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 16:32:14 |
|
||
|
Работаем с URL и ссылками
|
|||
|---|---|---|---|
|
#18+
В том-то и проблема, что надо url восстановить из обычной ссылки к полноценному (например из '../anytask/anypage.html' в 'http://myhost/anytask/anypage.html'). Вот я и спрашиваю, есть ли средства, которые позволяют это сделать, т.е. отдать на вход хост и ссылку, а получить полностью сформированный url, а не так, что бы анализировать есть ли в начале ссылки '../' (надо подниматься на уровень выше, самому) а может вообще ничего не стоит, т.о. из старого url'a выкидывать предыдущий адрес и добавлять туда новый... я думаю понятно объяснил... спасибо за ответы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 16:51:39 |
|
||
|
Работаем с URL и ссылками
|
|||
|---|---|---|---|
|
#18+
что-то я тебя не понял, ты то абсолютную ссылку на ресурс приводишь, то относительную, что тебе надо то? Или ты намереваешься вообще без всего каким-то образом узнать протокол, хост и порт из относительной ссылки? что тебе мешает воспользоваться другим конструктором? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 16:59:41 |
|
||
|
Работаем с URL и ссылками
|
|||
|---|---|---|---|
|
#18+
Спасибо за пример! Тогда еще вопрос: как можно проверить, содержит ли строка (урл) протокол или нет? String urlString = "/anypart2/page2.html"; URL url = new URL(urlString); // здесь будет ошибка Как можно предотвратить создания URL'a с неправильной строкой, т.е. перед созданием URL проверить, может ли строка являться урлом или нет? Такой вариант не подходит: try { String urlString = "/anypart2/page2.html"; URL url = new URL(urlString); // здесь будет ошибка } catch (MalformedURLException e){ // дальнейшая обработка } Надо, что бы было типа такого: String urlString = "/anypart2/page2.html"; // проверка Boolean b = КакаятоБибла.этоЕстьТочноУрл(urlString); if (b == true) // создаем URL url = new URL(urlString); // здесь будет ошибка esle // не создаем и делаем что-то еще... Может кто-то что-то знает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 18:18:08 |
|
||
|
Работаем с URL и ссылками
|
|||
|---|---|---|---|
|
#18+
Все ура нашел: org.apache.commons.validator.UrlValidator!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 18:28:14 |
|
||
|
Работаем с URL и ссылками
|
|||
|---|---|---|---|
|
#18+
а почему тебе не катит обработка MalformedURLException - это ж стандартный способ? Вообще URL он должен удовлетворять спецификации, которая в джавадоках, кстати, указана. Вместо того, щоб тянуть ради одной простенькой функциюшечки целую библиотеку мог бы сам напистаь валидатор, да хоть бы и через регурялные выражения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 18:45:37 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34477257&tid=2145972]: |
0ms |
get settings: |
14ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
40ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
74ms |
get tp. blocked users: |
3ms |
| others: | 279ms |
| total: | 458ms |

| 0 / 0 |
