Java URLEncoder on apuohjelmaluokka, jota käytetään URL-osoitteiden koodaamiseen (Uniform Resource Locator). Luotettavuus ja turvallisuus varmistetaan URL-koodauksella. Kun käyttäjä pyytää tiettyä sivustoa get-menetelmän kautta, lomakeparametrit ja niiden arvot lisätään '?' kirjaudu sisään URL-osoitteeseen. Ongelma syntyy kuitenkin, kun arvoissa käytetään erikoismerkkejä, joita ei tulkita. Yleensä HTML käsittelee koodausosan automaattisesti käsittelemällä erikoismerkit ja muuntamalla ne merkeiksi, jotka ovat sallittuja kaikkien toimintojen sujuvan käsittelyn varmistamiseksi. Se ei kuitenkaan vahvista tarkkaa koodausta, joten emme voi luottaa pelkästään HTML-ominaisuuksiin, joten käytämme URL-osoitteiden koodaamiseen eksplisiittisesti Java:n URL Encoder -luokkaa.
On tärkeää noudattaa annettuja sääntöjä merkkijonoa koodattaessa:
- Aakkosmerkit välillä 'a' - 'z' tai 'A' - 'Z' ja numerot '0' - '9' pysyvät samoina.
- Aakkosnumeeriset merkit ja jotkin erikoismerkit, kuten '*', '_', '-' ja '.' Älä vaihda.
- Kaikki välilyönnit muunnetaan '+'-merkeiksi.
- W3C suosittelee UTF-8:n käyttöä koodaustarkoituksiin. Kaikki muut merkit on koodattu yhdellä tai useammalla tavulla määritettyä koodausmenetelmää käyttäen. Ne muunnetaan kolmimerkkiseksi merkkijonoksi muotoa %xy, jossa xy edustaa koodausmerkin heksadesimaaliesitystä.
Esimerkki 1:
Jos käyttäjän pyyntö on sellainen, että parametrin arvo sisältää erikoismerkkejä ja välilyöntejä kuten
k klusterointialgoritmi
u@Java T-piste
Jos käytetty koodaus on UTF-8, joka on yleisimmin käytetty, '@'-merkki muunnetaan '%40':ksi ja välilyönnit muunnetaan '+'-merkeiksi. Koodattu merkkijono näyttää tältä:
u%40Java+T+piste
Esimerkki 2:
Jos käyttäjän pyyntö on sellainen, että parametrin arvo ei sisällä erikoismerkkejä ja välilyöntejä as
s pythonissa
u@JavaTpoint
Koodattu merkkijono näyttää tältä:
u%40JavaTP
mikä on monitori
Koodauksen URL-osoite
URL-osoitteen koodaamiseksi Java URLEncoder -luokka tarjoaa encode()-menetelmän.
URLEncoder.encode( )
Menetelmä kääntää merkkijonon sovellus/x-www-form-url-koodattuun muotoon käyttämällä tiettyä koodausmenetelmää. Se hakee tavut vaarallisille merkeille käyttämällä mukana toimitettua koodausjärjestelmää.
Syntaksi:
public static String encode(String s, String enc) throws UnsupportedEncodingException
Huomautus: World Wide Web Consortium suosittelee UTF-8-koodausjärjestelmän käyttöä. Muuten se aiheuttaa erilaisia yhteensopimattomuutta.
Parametrit:
s: Käännettävä merkkijono.
ehdollinen operaattori javassa
enc: Tuetun merkkikoodauksen nimi, kuten 'UTF-8'.
Palautukset: Se palauttaa käännetyn merkkijonon.
Heitot: UnsupportedEncodingException heitetään, kun nimettyä koodausmallia ei tueta.
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 ) ; } }
Lähtö:
URL without any encoding: https://www.javatpoint.com/ u@ java T point URL after encoding: https://www.javatpoint.com/+u%40+java+T+point