Java에서 HTML 이스케이프

Zeeshan Afridi 2023년10월12일
  1. HTML 태그를 이스케이프하는 방법
  2. Java에서 HTML을 이스케이프하는 방법
Java에서 HTML 이스케이프

이 문서에서는 Java에서 HTML 문자 및 기호를 이스케이프 처리하는 방법을 설명합니다. Apache commons-textStringEscapeUtils.escapeHtml4(str) 메소드를 사용하여 Java에서 HTML 기호 및 문자를 이스케이프할 수 있습니다.

HTML 태그를 이스케이프하는 방법

Java 프로그램에서 HTML 태그를 피하고 이스케이프하기 위해 태그와 해당 특성을 식별합니다. <head> 태그가 있다고 가정해 보겠습니다. <로 시작하고 >로 끝나는 항목이 특정 시나리오에서 태그가 될 것이라는 것을 알고 있습니다.

따라서 HTML 태그의 이러한 특성을 활용하고 HTML 태그를 이스케이프할 수 있습니다. 더 잘 이해하기 위해 아래의 예를 살펴보겠습니다.

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

위의 예에는 <link>, <HTML>, <head><meta>와 같은 여러 HTML 태그가 있습니다. 이러한 태그는 각각 브라우저에 특별한 의미를 갖는 HTML 태그입니다.

이를 더 잘 이해하려면 웹페이지로 이동하여 페이지를 마우스 오른쪽 버튼으로 클릭하고 검사를 선택하여 다른 HTML 태그로 구성된 웹페이지의 구조를 볼 수 있습니다.

HTML에서 모든 태그는 <보다 작고 >보다 큰 기호로 둘러싸여 있습니다. 따라서 이러한 <, > 기호에는 특정 의미가 있으며 특정 코드에서 해당 HTML 문자 대신 HTML 엔티티 이름을 사용하는 경우 브라우저는 태그를 숨기지 않고 오히려 해석하는 대신 실제 텍스트를 대체합니다.

따라서 <를 엔티티 이름 &lt로 바꿉니다. 그리고 >를 엔터티 이름 &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;

이제 HTML 이스케이프에 대해 이해했으므로 Java에서 HTML을 이스케이프하는 방법을 이해하겠습니다.

Java에서 HTML을 이스케이프하는 방법

이 가이드의 시작 부분에서 논의한 것처럼 우리는 타사 서비스인 Apache를 사용할 것입니다. 미국 남서부 원주민 부족의 이름을 딴 소프트웨어 재단입니다.

Apache 개발자는 개발 프로세스를 가속화하기 위해 매우 유용하고 유용한 도구를 도입한 Apache용 소프트웨어를 구축했습니다.

이러한 유용한 도구 중 하나는 문자열에서 HTML을 이스케이프하는 데 사용됩니다. pom.xml 파일에 종속성을 포함하기만 하면 됩니다.

Java에서 StringEscapeUtils를 사용하기 위해 Commons-Text 종속성 가져오기

StringEscapeUtils를 사용하려면 commons-text 종속성을 가져와야 합니다.

<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-text</artifactId>
	<version>3.12</version>
</dependency>
  1. 이 종속성을 POM에 삽입하고 다음과 같이 진행합니다.
  2. Java에서 HTML을 이스케이프하기 위해 사용해야 하는 메소드는 StringEscapeUtils.escapeHtml4()StringEscapeUtils.unescapeHtml4()입니다.
  3. 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

String html은 위의 예제 1에서 사용한 HTML 코드 조각입니다.

이 프로그램의 핵심은 이 컨텍스트에서 HTML을 이스케이프 처리하는 StringEscapeUtils.escapeHtml4(html)입니다. StringEscapeUtils 클래스에는 다른 메소드가 있지만 escapeHtml4()를 사용합니다.

이제 위에서 언급한 이 코드를 실행하려고 하면 이 기사의 첫 번째 섹션에서 본 이스케이프된 출력을 볼 수 있습니다.

Java에서 이스케이프 처리되지 않은 원본 데이터 가져오기

Apache StringEscapeUtils의 동일한 클래스를 사용하여 문자열을 원래 형식으로 쉽게 이스케이프 해제할 수 있습니다. 그렇게 하려면 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);

위의 코드에서 escapeHtml4() 바로 뒤에 StringEscapeUtils 클래스의 unescapeHtml4() 메서드를 사용하여 이스케이프된 데이터를 이스케이프되지 않은 데이터로 변환합니다.

위의 코드를 실행하면 이런 결과가 나옵니다.

<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