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:
- 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.
- Az alfanumerikus karakterek és néhány speciális karakter, például a '*', '_', '-' és '.' ne változz.
- Az összes szóköz „+” jelekké alakul.
- 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