Encoder et decoder un URL string en Java

L'encodage des URL est très essentielle dans le Java web parce qu'il protège l'utilisateur et évite les attaques vulnérables comme l'injection SQL. Comment peut-on encoder avec sûreté un URL ou un formulaire passé dans une Servlet, ou un programme qui s'exécute sur un serveur web.

Java fournit la classe URLEncoder qui dispose de la méthode encode(). Cette méthode encode un String.

Il faut aussi un moyen de décodage. La classe URLDecoder dispose de méthode decode() pour décoder le String encodé avec URLEncoder.

Exemple:

import java.io.UnsupportedEncodingException;

public class Encode_Decode {

public static void main(String[] args) {
String url = "Ceci est un test_[]<>()!#^$@%~&*";
try {
String urlencode = java.net.URLEncoder.encode(url, "UTF-8");
System.out.println("Codage: "+urlencode);
String urldecode = java.net.URLDecoder.decode(urlencode, "UTF-8");
System.out.println("Décodage: "+urldecode);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Sortie

Codage: Ceci+est+un+test_%5B%5D%3C%3E%28%29%21%23%5E%24%40%25%7E%26*
Décodage: Ceci est un test_[]<>()!#^$@%~&*
Dans ce programme, la variable String urlencode est passée comme argument dans la méthode URLEncoder.encode puis on affiche le résultat. Ensuite, il décode la variable encodé avec URLDecoder.decode et affiche l'url décodé.

Pour plus d'informations, je vous recommande de lire la documentation Java concernant URLEncoder et URLDecoder.