JSP ページを作成すると、正確には何を行うの<c:out>
でしょうか? 次の両方が同じ結果になることに気付きました。
<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
c:out
クロスサイト スクリプティングを回避できるように、HTML 文字をエスケープします。
もしもperson.name = <script>alert("Yo")</script>
スクリプトは2番目のケースで実行されますが、使用する場合は実行されませんc:out
Will Wagner が言ったように、古いバージョンの jsp では、c:out
動的テキストを出力するために常に使用する必要があります。
さらに、次の構文を使用します。
<c:out value="${person.name}">No name</c:out>
name が null の場合、「No name」というテキストを表示できます。
c:out
person.name
の値がたまたまnullの場合に、デフォルト値を割り当てるための属性もあります。
true に等しい属性 escapeXml 値を使用して、Xml エンティティのエスケープを明示的に有効にすることができます。参考までに、デフォルトでは「true」です。
古いバージョンの JSP は、2 番目の構文をサポートしていませんでした。