Rumah >Java >javaTutorial >Bagaimana Anda Boleh Mengeluarkan Nama Domain daripada URL di Java dengan Amanah?

Bagaimana Anda Boleh Mengeluarkan Nama Domain daripada URL di Java dengan Amanah?

Susan Sarandon
Susan Sarandonasal
2024-11-02 01:52:30939semak imbas

How Can You Reliably Extract Domain Names from URLs in Java?

Mengekstrak Nama Domain daripada URL

Memandangkan URL, mengekstrak nama domain adalah tugas biasa dalam pembangunan web dan pemprosesan data. Walau bagaimanapun, ia boleh mencabar kerana kerumitan sintaks URL dan kemungkinan kes kelebihan.

Dalam perbincangan ini, kami menyediakan penyelesaian Java yang mengekstrak nama domain daripada URL dan menangani kemungkinan perangkap dan kes tepi:

Penyelesaian Java yang Diperbaiki

Penyelesaian yang disediakan menggunakan java.net.URI dan bukannya java.net.URL untuk menghuraikan URL:

<code class="java">public static String getDomainName(String url) throws URISyntaxException {
    URI uri = new URI(url);
    String domain = uri.getHost();
    return domain.startsWith("www.") ? domain.substring(4) : domain;
}</code>

Pendekatan ini mengelakkan beberapa isu dengan java.net .URL, seperti kelemahannya terhadap serangan penafian perkhidmatan dan kekurangan sokongan untuk URL relatif.

Mengendalikan Kes Edge

Penyelesaian asal gagal untuk beberapa kes tepi, termasuk:

  • URL relatif: URL tanpa skema (cth., "http://google.com").
  • Protokol tidak sensitif huruf: URL yang protokolnya bukan huruf kecil (cth., "HTTP://example.com").
  • URL relatif protokol: URL tanpa skema yang bermula dengan "//".
  • URL relatif dengan komponen laluan "www": URL dengan laluan relatif yang bermula dengan "www".
  • Nama domain yang bermula dengan "www" tetapi bukan "www.": URL dengan nama domain yang mempunyai aksara utama sebelum "www".

Penyelesaian Ungkapan Biasa

Untuk URL dengan format yang kompleks dan berkemungkinan tidak sah, anda boleh menggunakan ungkapan biasa berdasarkan Lampiran B RFC 3986. Walau bagaimanapun, pendekatan ini lebih kompleks dan mungkin tidak mengendalikan semua kes tepi dengan betul.

Kesimpulan

Mengekstrak nama domain daripada URL memerlukan berhati-hati pertimbangan sintaks URL dan kemungkinan kes kelebihan. Penyelesaian Java yang disediakan menangani banyak isu ini dan memastikan pengekstrakan nama domain yang boleh dipercayai. Apabila mengendalikan URL yang lebih kompleks atau input tidak sah, penghurai berasaskan ungkapan biasa mungkin diperlukan.

Atas ialah kandungan terperinci Bagaimana Anda Boleh Mengeluarkan Nama Domain daripada URL di Java dengan Amanah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn