というテキストを表示したい
"welcome<to>Jsp"
ページソースにも「welcomeJsp」と表示されています
しかし、HTML では "welcomeJsp" だけで表示されます。私を案内してください。
というテキストを表示したい
"welcome<to>Jsp"
ページソースにも「welcomeJsp」と表示されています
しかし、HTML では "welcomeJsp" だけで表示されます。私を案内してください。
これらの文字をエスケープする必要があります..
welcome<to>Jsp
HTML をエスケープするために、 Apache のStringEscapeUtilsクラス ( org.apache.commons.lang で利用可能) 関数を使用することをお勧めします。escapeHtml()
StringEscapeUtils.escapeHtml("welcome<to>Jsp")
"welcome<to>Jsp"
> (greater than) - (>)
< (less than) - (<)
これらの文字を実際に表示するには、この方法でエンコードする必要があります。
JSTL <c:out>
タグまたはfn:escapeXml()
関数を使用します。
<c:out value="welcome<to>Jsp" />
また
${fn:escapeXml('welcome<to>Jsp')}
モデル値にも使用できます。
<c:out value="${bean.property}" />
また
${fn:escapeXml(bean.property)}
ちなみに、これらの 2 つは、ユーザー制御の入力に関係する場合は常に使用する必要があります。それ以外の場合は、XSS 攻撃の穴に完全にさらされます。JSP wiki ページと、XSS の背後にある一般的な概念は何ですか?も参照してください。