Что именно делает при написании страницы 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>
скрипт будет выполнен во втором случае, но не при использовании c:out
Как сказал Уилл Вагнер, в старой версии jsp вы всегда должны использовать
c:out
для вывода динамического текста.Более того, используя этот синтаксис:
вы можете отобразить текст «Без имени», если имя не указано.
источник
c:out
также имеет атрибут для присвоения значения по умолчанию, если значениеperson.name
оказывается нулевым.Источник: из (Документация, созданная TLDDoc)
источник
Вы можете явно включить экранирование сущностей Xml, используя значение атрибута escapeXml, равное true. К вашему сведению, по умолчанию это «правда».
источник
Старые версии JSP не поддерживали второй синтаксис.
источник