powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Работаем с URL и ссылками
7 сообщений из 7, страница 1 из 1
Работаем с URL и ссылками
    #34476584
aleksanderat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!!!
Вопрос следующего содержания:

например, имеется URL: http://anyhost.com/anypart/page.html.
и есть например ссылка (href) какой-нибудь: '../anypart2/page2.html' или просто 'page4.html'.

Соответственно, если я пытаюсь создать URL: URL url = new URL(и сюда кидаю эти ссылки), то
происходит исключение MalformedURLException.

я понимаю, что самому все сделать не сложно, но зачем изобретать велосипед, если возможно уже есть то, что позволяет это сделать.

может ли кто-нибудь подсказать какую нибудь либу?

спасибо...
...
Рейтинг: 0 / 0
Работаем с URL и ссылками
    #34476765
y3u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
этот эксцепшен бросается, если ты не соблюдаешь формат, вот, к примеру, нормально работает...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 public   static   void  main(String[] args) {
         try  {
            URL url =  new  URL("http://www.sql.ru/forum/actualpost.aspx?bid=38&tid=421000&mid=0&p=1#4049755");
            System.out.println(url.getProtocol());
        }  catch  (MalformedURLException e) {
            e.printStackTrace();
        }
    }
...
Рейтинг: 0 / 0
Работаем с URL и ссылками
    #34476862
aleksanderat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том-то и проблема, что надо url восстановить из обычной ссылки к полноценному (например из '../anytask/anypage.html' в 'http://myhost/anytask/anypage.html').
Вот я и спрашиваю, есть ли средства, которые позволяют это сделать, т.е. отдать на вход хост и ссылку, а получить полностью сформированный url, а не так, что бы анализировать есть ли в начале ссылки '../' (надо подниматься на уровень выше, самому) а может вообще ничего не стоит, т.о. из старого url'a выкидывать предыдущий адрес и добавлять туда новый...

я думаю понятно объяснил...

спасибо за ответы
...
Рейтинг: 0 / 0
Работаем с URL и ссылками
    #34476882
y3u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то я тебя не понял, ты то абсолютную ссылку на ресурс приводишь, то относительную, что тебе надо то?
Или ты намереваешься вообще без всего каким-то образом узнать протокол, хост и порт из относительной ссылки?

что тебе мешает воспользоваться другим конструктором?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
     public   static   void  main(String[] args) {
         try  {
            URL base =  new  URL("http://www.sql.ru/forum/");
            URL url =  new  URL(base, "actualpost.aspx?bid=38&tid=421000&mid=0&p=1#4049755");
            System.out.println(url);
        }  catch  (MalformedURLException e) {
            e.printStackTrace();
        }
    }
...
Рейтинг: 0 / 0
Работаем с URL и ссылками
    #34477231
aleksanderat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за пример!

Тогда еще вопрос: как можно проверить, содержит ли строка (урл) протокол или нет?

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
// не создаем и делаем что-то еще...

Может кто-то что-то знает?
...
Рейтинг: 0 / 0
Работаем с URL и ссылками
    #34477257
aleksanderat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все ура нашел: org.apache.commons.validator.UrlValidator!!!
...
Рейтинг: 0 / 0
Работаем с URL и ссылками
    #34477295
y3u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему тебе не катит обработка MalformedURLException - это ж стандартный способ? Вообще URL он должен удовлетворять спецификации, которая в джавадоках, кстати, указана. Вместо того, щоб тянуть ради одной простенькой функциюшечки целую библиотеку мог бы сам напистаь валидатор, да хоть бы и через регурялные выражения...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Работаем с URL и ссылками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]