logo

Koder URL Java

Java URLEncoder to klasa narzędziowa używana do kodowania adresów URL (Uniform Resource Locator). Niezawodność i bezpieczeństwo są zapewnione dzięki kodowaniu adresu URL. Kiedy użytkownik żąda dostępu do konkretnej witryny za pomocą metody get, parametry formularza i ich wartości są dodawane po znaku „?” zaloguj się w adresie URL. Problem pojawia się jednak, gdy w wartościach, które nie są interpretowane, używane są znaki specjalne. Ogólnie rzecz biorąc, HTML obsługuje część kodującą automatycznie, przetwarzając znaki specjalne i konwertując je na znaki dozwolone w celu płynnej obsługi wszystkich operacji. Nie potwierdza to jednak dokładnego kodowania, dlatego nie możemy polegać wyłącznie na funkcjach HTML, dlatego do jawnego kodowania adresów URL używamy klasy URL Encoder w Javie.

Podczas kodowania ciągu ważne jest przestrzeganie podanych zasad:

  1. Znaki alfabetu od „a” do „z” lub od „A” do „Z” oraz cyfry od „0” do „9” pozostają takie same.
  2. Znaki alfanumeryczne i niektóre znaki specjalne, takie jak „*”, „_”, „-” i „.” nie zmieniaj.
  3. Wszystkie spacje są zamieniane na znaki „+”.
  4. W3C zaleca używanie „UTF-8” do celów kodowania. Wszystkie pozostałe znaki są kodowane w jednym lub większej liczbie bajtów przy użyciu określonego schematu kodowania. Są one konwertowane na trzyznakowy ciąg znaków w postaci %xy, gdzie xy reprezentuje szesnastkową reprezentację znaku kodowania.

Przykład 1:

Jeżeli żądanie użytkownika jest takie, że wartość parametru zawiera znaki specjalne i spacje np

podstawy Javy

u@Java Punkt T

Jeśli najczęściej używanym kodowaniem jest UTF-8, znak „@” zostanie zamieniony na „%40”, a spacje zostaną zamienione na znaki „+”. Zakodowany ciąg wygląda następująco:

u%40Java+T+Point

wartość ciągu Java

Przykład 2:

Jeśli żądanie użytkownika jest takie, że wartość parametru nie zawiera znaków specjalnych i spacji, np

u@JavaTpoint

Zakodowany ciąg wygląda następująco:

u%40JavaTPoint

Kodowanie adresu URL

połączona lista

Aby zakodować adres URL Java, klasa URLEncoder udostępnia metodę encode().

URLEncoder.encode( )

Metoda tłumaczy ciąg znaków na zakodowany format application/x-www-form-url przy użyciu określonego schematu kodowania. Uzyskuje bajty niebezpiecznych znaków przy użyciu dostarczonego schematu kodowania.

Składnia:

organizacja i architektura komputera
 public static String encode(String s, String enc) throws UnsupportedEncodingException 

Uwaga: Konsorcjum World Wide Web zaleca stosowanie schematu kodowania UTF-8. W przeciwnym razie powoduje to różne niezgodności.

Parametry:

S: Ciąg do przetłumaczenia.

en: Nazwa obsługiwanego kodowania znaków, np. „UTF-8”.

Zwroty: Zwraca przetłumaczony ciąg.

Rzuca: UnsupportedEncodingException jest zgłaszany, gdy nazwany schemat kodowania nie jest obsługiwany.

UrlEncoder.java

 import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; public class UrlEncoder { public static void main(String[] args) throws MalformedURLException, UnsupportedEncodingException { String baseUrl = 'https://www.javatpoint.com/'; // String to be encoded as requested by the user String query = ' u@ java T point'; System.out.println(' URL without any encoding : ') ; // creating an object of the URL class URL url = new URL(baseUrl + query) ; System.out.println( url ) ; // using the encode( ) method to encode the URL System.out.println( ' URL after encoding : ' ) ; url = new URL( baseUrl + URLEncoder.encode( query, 'UTF-8' ) ) ; System.out.println( url ) ; } } 

Wyjście:

 URL without any encoding: https://www.javatpoint.com/ u@ java T point URL after encoding: https://www.javatpoint.com/+u%40+java+T+point