JavaでHTMLタグをエスケープする方法


  1. Javaのライブラリを使用する方法: Javaには、HTMLエスケープを行うためのライブラリがあります。代表的なものには、Apache Commons LangライブラリのStringEscapeUtilsクラスがあります。以下は使用例です。

    import org.apache.commons.lang3.StringEscapeUtils;
    public class Main {
       public static void main(String[] args) {
           String html = "</div><h1>test</h1><div>...";
           String escapedHtml = StringEscapeUtils.escapeHtml4(html);
           System.out.println(escapedHtml);
       }
    }

    上記のコードでは、StringEscapeUtils.escapeHtml4()メソッドを使用してHTMLエスケープを行っています。出力結果は&lt;/div&gt;&lt;h1&gt;test&lt;/h1&gt;&lt;div&gt;...となります。

  2. 自前でエスケープメソッドを実装する方法: もしライブラリを使用しない場合、独自のエスケープメソッドを実装することもできます。以下は簡単な実装例です。

    public class Main {
       public static void main(String[] args) {
           String html = "</div><h1>test</h1><div>...";
           String escapedHtml = escapeHtml(html);
           System.out.println(escapedHtml);
       }
       public static String escapeHtml(String html) {
           StringBuilder escaped = new StringBuilder();
           for (char c : html.toCharArray()) {
               switch (c) {
                   case '<':
                       escaped.append("&lt;");
                       break;
                   case '>':
                       escaped.append("&gt;");
                       break;
                   case '&':
                       escaped.append("&amp;");
                       break;
                   case '\"':
                       escaped.append("&quot;");
                       break;
                   case '\'':
                       escaped.append("&#39;");
                       break;
                   default:
                       escaped.append(c);
               }
           }
           return escaped.toString();
       }
    }

    上記のコードでは、escapeHtml()メソッドを実装しています。それぞれの特殊文字に対して適切なエスケープ文字列を追加しています。

以上がJavaでHTMLタグをエスケープする方法の例です。これらの方法を使用すると、HTMLタグが正しくエスケープされ、安全に表示・処理することができます。