Échapper au HTML en Java

Zeeshan Afridi 12 octobre 2023
  1. Comment échapper les balises HTML
  2. Comment échapper HTML en Java
Échapper au HTML en Java

Cet article explique comment échapper les caractères HTML et les symboles en Java. Nous pouvons utiliser les méthodes Apache commons-text et StringEscapeUtils.escapeHtml4(str) pour échapper les symboles et les caractères HTML en Java.

Comment échapper les balises HTML

Nous identifions les balises et leurs caractéristiques pour éviter et échapper aux balises HTML dans votre programme Java. Disons que nous avons une balise <head> ; nous savons que quelque chose qui commence par < et se termine par > sera une balise dans un scénario spécifique.

Nous pouvons donc utiliser ces caractéristiques des balises HTML et échapper aux balises HTML. Pour mieux comprendre, regardons l’exemple ci-dessous.

<html lang="en-US">
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <link rel="shortcut icon" href="https://www.w3schools.com/images/w3schools_green.jpg" type="image/x-icon">
</head>

Dans l’exemple ci-dessus, nous avons plusieurs balises HTML comme <link>, <HTML>, <head> et <meta>. Ces balises sont des balises HTML, chacune ayant une signification particulière pour le navigateur.

Pour mieux comprendre cela, vous pouvez aller sur n’importe quelle page Web, faire un clic droit sur la page et sélectionner Inspect pour voir la structure de la page Web, qui est composée de différentes balises HTML.

En HTML, chaque balise est entourée de symboles inférieurs à < et supérieurs à >. Il est donc important de noter que ces symboles <, > ont une signification spécifique, et si vous utilisez les noms d’entités HTML au lieu de ces caractères HTML dans un code spécifique, le navigateur ne masquera pas les balises, mais il déplacera le texte réel au lieu de l’interpréter.

Remplacez donc < par le nom de l’entité &lt. Et remplacez > par le nom de l’entité &gt.

&lt;html lang=&quot;en-US&quot;&gt;
&lt;head&gt;
    &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
    &lt;link rel=&quot;shortcut icon&quot; href=&quot; https://www.w3schools.com/images/w3schools_green.jpg &quot; type=&quot;image/x-icon&quot;&gt;
&lt;/head&gt;

Maintenant que nous avons compris comment échapper le HTML, comprenons comment échapper le HTML en Java.

Comment échapper HTML en Java

Comme indiqué au début de ce guide, nous utiliserons Apache, un service tiers. Il s’agit d’une fondation logicielle nommée d’après une tribu amérindienne du sud-ouest des États-Unis.

Les développeurs d’Apache ont créé un logiciel pour Apache qui a introduit des outils très utiles et utiles pour accélérer le processus de développement.

L’un de ces outils utiles est utilisé pour échapper le HTML dans une chaîne. Il vous suffit d’inclure la dépendance dans votre fichier pom.xml.

Importer la dépendance Commons-Text pour utiliser StringEscapeUtils en Java

Pour utiliser StringEscapeUtils, vous devez importer les dépendances commons-text.

<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-text</artifactId>
	<version>3.12</version>
</dependency>
  1. Insérez cette dépendance dans votre POM puis procédez comme suit.
  2. Les méthodes que nous devons utiliser pour échapper le HTML en Java sont StringEscapeUtils.escapeHtml4() et StringEscapeUtils.unescapeHtml4().
  3. Écrivez ce code dans votre compilateur Java.
String html = "<html lang=\"en-US\">\r\n"
    + "<head>\r\n"
    + "    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\r\n"
    + "    <link rel=\"shortcut icon\" href=\" https://www.w3schools.com/images/w3schools_green.jpg \" type=\"image/x-icon\">\r\n"
    + "</head>";

// This is used to escape html
String escapedOutput = StringEscapeUtils.escapeHtml4(html);
System.out.println(escapedOutput); // printing the output

Le String html est juste un extrait de code HTML que nous avons utilisé ci-dessus dans l’exemple 1.

L’élément central de ce programme est StringEscapeUtils.escapeHtml4(html) qui est responsable de l’échappement du HTML dans ce contexte. La classe StringEscapeUtils a différentes méthodes, mais nous utiliserons le escapeHtml4().

Maintenant, si vous essayez d’exécuter ce code mentionné ci-dessus, vous verrez la sortie échappée que vous avez vue dans la première section de cet article.

Obtenir les données originales non échappées en Java

En utilisant la même classe d’Apache StringEscapeUtils, nous pouvons facilement ramener la chaîne à sa forme d’origine. Et pour ce faire, vous devez utiliser le code suivant dans votre compilateur Java.

String html = "<html lang=\"en-US\">\r\n"
    + "<head>\r\n"
    + "    <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\r\n"
    + "    <link rel=\"shortcut icon\" href=\" https://www.w3schools.com/images/w3schools_green.jpg \" type=\"image/x-icon\">\r\n"
    + "</head>";

String escapedOutput = StringEscapeUtils.escapeHtml4(html);
String original = StringEscapeUtils.unescapeHtml4(escapedOutput);
System.out.println(original);

Dans le code ci-dessus, nous utilisons la méthode unescapeHtml4() de la classe StringEscapeUtils juste après escapeHtml4() pour convertir les données échappées en données non échappées.

Exécutez le code ci-dessus et vous obtiendrez cette sortie.

<html lang="en-US">
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<link rel="shortcut icon"
href=" https://www.w3schools.com/images/w3schools_green.jpg " type="image/x-icon"> </head>
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn