Escapar HTML en Java

Zeeshan Afridi 12 octubre 2023
  1. Cómo escapar de las etiquetas HTML
  2. Cómo escapar de HTML en Java
Escapar HTML en Java

Este artículo explica cómo escapar caracteres y símbolos HTML en Java. Podemos usar los métodos Apache commons-text y StringEscapeUtils.escapeHtml4(str) para escapar de símbolos y caracteres HTML en Java.

Cómo escapar de las etiquetas HTML

Identificamos las etiquetas y sus características para evitar y escapar de las etiquetas HTML en su programa Java. Digamos que tenemos una etiqueta <head>; sabemos que algo que comienza con < y termina con > será una etiqueta en un escenario específico.

Entonces podemos utilizar estas características de las etiquetas HTML y escapar de las etiquetas HTML. Para entenderlo mejor, veamos el siguiente ejemplo.

<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>

En el ejemplo anterior, tenemos varias etiquetas HTML como <link>, <HTML>, <head> y <meta>. Estas etiquetas son etiquetas HTML, cada una con un significado especial para el navegador.

Para entender esto mejor, puede ir a cualquier página web, hacer clic con el botón derecho en la página y seleccionar Inspect para ver la estructura de la página web, que está compuesta por diferentes etiquetas HTML.

En HTML, cada etiqueta está encerrada entre los símbolos menor que < y mayor que >. Por lo tanto, es importante tener en cuenta que estos símbolos <, > tienen un significado específico, y si usa los nombres de las entidades HTML en lugar de esos caracteres HTML en un código específico, el navegador no ocultará las etiquetas, sino que las ocultará. desplazará el texto real en lugar de interpretarlo.

Así que reemplace < con el nombre de la entidad &lt. Y reemplace > con el nombre de la entidad &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;

Ahora que hemos entendido cómo escapar de HTML, comprendamos cómo escapar de HTML en Java.

Cómo escapar de HTML en Java

Como se discutió al comienzo de esta guía, utilizaremos Apache, un servicio de terceros. Es una fundación de software que lleva el nombre de una tribu de nativos americanos de la parte suroeste de los EE. UU.

Los desarrolladores de Apache crearon software para Apache que introdujeron algunas herramientas muy útiles y útiles para acelerar el proceso de desarrollo.

Una de estas herramientas útiles se utiliza para escapar de HTML en una cadena. Todo lo que necesita hacer es incluir la dependencia en su archivo pom.xml.

Importe la dependencia Commons-Text para usar StringEscapeUtils en Java

Para usar StringEscapeUtils, debe importar las dependencias commons-text.

<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-text</artifactId>
	<version>3.12</version>
</dependency>
  1. Inserte esta dependencia en su POM y luego proceda de la siguiente manera.
  2. Los métodos que debemos usar para escapar de HTML en Java son StringEscapeUtils.escapeHtml4() y StringEscapeUtils.unescapeHtml4().
  3. Escriba este código en su compilador de 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

El String html es solo un fragmento de código HTML que usamos anteriormente en el ejemplo 1.

El núcleo de este programa es StringEscapeUtils.escapeHtml4(html), que es responsable de escapar de HTML en este contexto. La clase StringEscapeUtils tiene diferentes métodos, pero utilizaremos escapeHtml4().

Ahora, si intenta ejecutar este código mencionado anteriormente, verá el resultado de escape que vio en la primera sección de este artículo.

Obtenga los datos originales sin escapar en Java

Usando la misma clase de Apache StringEscapeUtils, podemos recuperar fácilmente la cadena a su forma original. Y para hacerlo, debe usar el siguiente código en su compilador de 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);

En el código anterior, usamos el método unescapeHtml4() de la clase StringEscapeUtils justo después de escapeHtml4() para convertir los datos con escape en datos sin escape.

Ejecute el código anterior y obtendrá este resultado.

<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