Menghuraikan rentetan URI ke dalam unsur konstituennya ialah tugas biasa dalam pembangunan web. Untuk melaksanakan tugas ini, Java menyediakan beberapa keupayaan terbina dalam dan perpustakaan luaran. Artikel ini memfokuskan pada penyelesaian berasaskan Java untuk menghuraikan rentetan URI tanpa menggunakan kebergantungan luaran.
Bahagian pertanyaan URI mengandungi satu siri pasangan nilai nama yang dipisahkan oleh watak '&'. Untuk menghuraikan parameter ini ke dalam peta, anda boleh menggunakan kaedah berikut:
public static Map<String, String> splitQuery(URL url) throws UnsupportedEncodingException { Map<String, String> query_pairs = new LinkedHashMap<>(); String query = url.getQuery(); String[] pairs = query.split("&"); for (String pair : pairs) { int idx = pair.indexOf("="); query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8")); } return query_pairs; }
Menggunakan URL yang diberikan sebagai contoh:
https://google.com.ua/oauth/authorize?client_id=SS&response_type=code&scope=N_FULL&access_type=offline&redirect_uri=http://localhost/Callback
kaedah splitQuery akan mengembalikan peta berikut:
{client_id=SS, response_type=code, scope=N_FULL, access_type=offline, redirect_uri=http://localhost/Callback}
Kaedah ini termasuk penyahkodan URL untuk mengendalikan sebarang aksara khas yang terdapat dalam nilai parameter.
Versi kaedah yang dikemas kini telah disediakan untuk mengendalikan senario di mana berbilang parameter mempunyai kunci yang sama. Versi ini menggunakan Map
Pelaksanaan kaedah Java 8 juga tersedia, yang memanfaatkan ungkapan dan strim lambda untuk penyelesaian yang ringkas dan cekap.
Dengan menggunakan kaedah splitQuery, anda boleh menghuraikan rentetan pertanyaan URI dengan mudah ke dalam pasangan nama-nilai konstituen tanpa bergantung pada perpustakaan luaran. Keupayaan ini penting untuk pelbagai tugas pembangunan web, seperti mengekstrak input pengguna atau mendapatkan semula parameter daripada titik akhir RESTful.
Atas ialah kandungan terperinci Bagaimana Menghuraikan Rentetan Pertanyaan URI ke dalam Pasangan Nilai-Nama di Jawa Tanpa Perpustakaan Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!