logo

Java URL kódoló

A Java URLEncoder egy segédprogram osztály, amelyet az URL-ek kódolására használnak (Uniform Resource Locator). A megbízhatóságot és a biztonságot az URL kódolása biztosítja. Amikor a felhasználó lekér egy adott webhelyet a get metóduson keresztül, az űrlapparaméterek és azok értékei hozzáadódnak a '?' jelentkezzen be az URL-be. A probléma azonban akkor merül fel, ha speciális karaktereket használnak a nem értelmezett értékekben. Általában a HTML automatikusan kezeli a kódolási részt a speciális karakterek feldolgozásával és olyan karakterekké alakításával, amelyek lehetővé teszik az összes művelet zökkenőmentes kezelését. Ez azonban nem erősíti meg a pontos kódolást, ezért nem hagyatkozhatunk kizárólag a HTML jellemzőire, így az URL-ek explicit kódolásához a Java URL Encoder osztályát használjuk.

A karakterlánc kódolásakor fontos betartani a megadott szabályokat:

  1. Az „a”-tól „z”-ig vagy „A”-tól „Z”-ig terjedő alfabetikus karakterek és a „0”-tól „9”-ig tartó számjegyek változatlanok maradnak.
  2. Az alfanumerikus karakterek és néhány speciális karakter, például a '*', '_', '-' és '.' ne változz.
  3. Az összes szóköz „+” jelekké alakul.
  4. A W3C az „UTF-8” használatát javasolja kódolási célokra. Az összes többi karaktert egy vagy több bájt kódolja a megadott kódolási séma szerint. Átalakításuk egy három karakterből álló, %xy formátumú sztringgé történik, ahol xy a kódoló karakter hexadecimális reprezentációját jelenti.

1. példa:

Ha a felhasználói kérés olyan, hogy a paraméter értéke speciális karaktereket és szóközöket tartalmaz, mint

állíts be javát

u@Java T pont

Ha a használt UTF-8 kódolás, amely a leggyakrabban használt, a „@” jel „%40”-re, a szóközök pedig „+” jelekké alakulnak. A kódolt karakterlánc a következőképpen néz ki:

u%40Java+T+pont

2. példa:

dijkstra

Ha a felhasználói kérés olyan, hogy a paraméter értéke nem tartalmaz speciális karaktereket és szóközöket, mint

u@JavaTpoint

A kódolt karakterlánc a következőképpen néz ki:

u%40JavaTPont

Kódolási URL

Az URL kódolásához a Java URLEncoder osztály biztosítja az encode() metódust.

URLEncoder.encode( )

A metódus egy karakterláncot application/x-www-form-url kódolású formátumba fordít le egy adott kódolási séma használatával. A nem biztonságos karakterek bájtjait a mellékelt kódolási séma használatával szerzi meg.

java színek

Szintaxis:

 public static String encode(String s, String enc) throws UnsupportedEncodingException 

Megjegyzés: A World Wide Web Consortium az UTF-8 kódolási séma használatát javasolja. Ellenkező esetben különféle összeférhetetlenségeket okoz.

Paraméterek:

konvertálja a karakterláncot intergerré

s: A lefordítandó karakterlánc.

enc: A támogatott karakterkódolás neve, például „UTF-8”.

Visszaküldés: A lefordított karakterláncot adja vissza.

Dobások: A UnsupportedEncodingException kivételt dob, ha a megnevezett kódolási séma nem támogatott.

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 ) ; } } 

Kimenet:

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