Escape HTML in Java

Zeeshan Afridi 12 Oktober 2023
  1. So entkommen Sie HTML-Tags
  2. So entkommen Sie HTML in Java
Escape HTML in Java

In diesem Artikel wird erläutert, wie HTML-Zeichen und -Symbole in Java maskiert werden. Wir können die Apache-Methoden commons-text und StringEscapeUtils.escapeHtml4(str) verwenden, um HTML-Symbole und -Zeichen in Java zu maskieren.

So entkommen Sie HTML-Tags

Wir identifizieren die Tags und ihre Eigenschaften, um HTML-Tags in Ihrem Java-Programm zu vermeiden und zu umgehen. Nehmen wir an, wir haben ein <head>-Tag; Wir wissen, dass etwas, das mit < beginnt und mit > endet, in einem bestimmten Szenario ein Tag ist.

So können wir diese Eigenschaften von HTML-Tags nutzen und HTML-Tags entkommen. Um es besser zu verstehen, schauen wir uns das folgende Beispiel an.

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

Im obigen Beispiel haben wir mehrere HTML-Tags wie <link>, <HTML>, <head> und <meta>. Diese Tags sind HTML-Tags, die jeweils eine besondere Bedeutung für den Browser haben.

Um dies besser zu verstehen, können Sie auf eine beliebige Webseite gehen, mit der rechten Maustaste auf die Seite klicken und Inspizieren auswählen, um die Struktur der Webseite zu sehen, die aus verschiedenen HTML-Tags besteht.

In HTML ist jedes Tag in kleiner als < und größer als >-Symbole eingeschlossen. Es ist also wichtig zu beachten, dass diese Symbole <, > eine bestimmte Bedeutung haben, und wenn Sie die HTML-Entitätsnamen anstelle dieser HTML-Zeichen in einem bestimmten Code verwenden, wird der Browser die Tags nicht verbergen, sondern sie wird den eigentlichen Text verdrängen, anstatt ihn zu interpretieren.

Ersetzen Sie also < durch den Entitätsnamen &lt. Und ersetzen Sie > durch den Entitätsnamen &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;

Nachdem wir nun verstanden haben, wie man HTML maskiert, wollen wir verstehen, wie man HTML in Java maskiert.

So entkommen Sie HTML in Java

Wie zu Beginn dieses Leitfadens besprochen, verwenden wir Apache, einen Dienst eines Drittanbieters. Es ist eine Software-Stiftung, die nach einem indianischen Stamm aus dem Südwesten der USA benannt ist.

Die Entwickler von Apache haben Software für Apache entwickelt, die einige sehr nützliche und hilfreiche Tools einführte, um den Entwicklungsprozess zu beschleunigen.

Eines dieser nützlichen Tools wird verwendet, um HTML in einem String zu maskieren. Alles, was Sie tun müssen, ist die Abhängigkeit in Ihre pom.xml-Datei aufzunehmen.

Importieren der Commons-Text-Abhängigkeit zur Verwendung von StringEscapeUtils in Java

Um StringEscapeUtils zu verwenden, müssen Sie die commons-text-Abhängigkeiten importieren.

<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-text</artifactId>
	<version>3.12</version>
</dependency>
  1. Fügen Sie diese Abhängigkeit in Ihr POM ein und gehen Sie dann wie folgt vor.
  2. Die Methoden, die wir verwenden müssen, um HTML in Java zu entkommen, sind StringEscapeUtils.escapeHtml4() und StringEscapeUtils.unescapeHtml4().
  3. Schreiben Sie diesen Code in Ihren Java-Compiler.
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

Der String html ist nur ein HTML-Code-Snippet, das wir oben in Beispiel 1 verwendet haben.

Das Kernstück in diesem Programm ist StringEscapeUtils.escapeHtml4(html), das in diesem Zusammenhang für das Escapen von HTML zuständig ist. Die Klasse StringEscapeUtils hat verschiedene Methoden, aber wir werden escapeHtml4() verwenden.

Wenn Sie nun versuchen, diesen oben erwähnten Code auszuführen, sehen Sie die maskierte Ausgabe, die Sie im ersten Abschnitt dieses Artikels gesehen haben.

Holen Sie sich die ursprünglichen nicht maskierten Daten in Java

Mit der gleichen Apache-Klasse StringEscapeUtils können wir den String leicht in seine ursprüngliche Form zurücksetzen. Dazu müssen Sie den folgenden Code in Ihrem Java-Compiler verwenden.

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

Im obigen Code verwenden wir die Methode unescapeHtml4() der Klasse StringEscapeUtils direkt nach escapeHtml4(), um die Daten mit Escapezeichen in Daten ohne Escapezeichen umzuwandeln.

Führen Sie den obigen Code aus, und Sie erhalten diese Ausgabe.

<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