Schreiben einer JSP-Seite, was genau macht das <c:out>
machen? Ich habe festgestellt, dass die folgenden beiden das gleiche Ergebnis haben:
<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
Mit c:out
Werden HTML-Zeichen ausgeblendet, sodass Sie Cross-Site-Scripting vermeiden können.
if person.name = <script>alert("Yo")</script>
das Skript wird im zweiten Fall ausgeführt, jedoch nicht bei Verwendung von c:out
Wie gesagt, Will Wagner, in der alten Version von jsp solltest du immer c:out
, um dynamischen Text auszugeben.
Außerdem mit dieser Syntax:
<c:out value="${person.name}">No name</c:out>
sie können den Text "No name" anzeigen, wenn name null ist.
c:out
hat auch ein Attribut zum Zuweisen eines Standardwerts, wenn der Wert von person.name
ist zufällig null.
Sie können das Escaping von XML-Entitäten explizit aktivieren, indem Sie ein Attribut verwenden, dessen Wert für escapeXml gleich true ist. Zu Ihrer Information, es ist standardmäßig "true".
Ältere Versionen von JSP haben die zweite Syntax nicht unterstützt.