Escrevendo uma página JSP, o que exatamente isso <c:out>
faz? Notei que os dois a seguir têm o mesmo resultado:
<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
c:out
escapa caracteres HTML para evitar scripts entre sites.
E se person.name = <script>alert("Yo")</script>
o script será executado no segundo caso, mas não ao usar c:out
Como disse Will Wagner, na versão antiga do jsp você deve sempre usar
c:out
para gerar texto dinâmico.Além disso, usando esta sintaxe:
você pode exibir o texto "Sem nome" quando o nome for nulo.
fonte
c:out
também tem um atributo para atribuir um valor padrão se o valor deperson.name
for nulo.Fonte: out (documentação gerada por TLDDoc)
fonte
Você pode habilitar explicitamente o escape de entidades Xml usando um valor de escapeXml de atributo igual a true. FYI, por padrão é "verdadeiro".
fonte
Versões mais antigas do JSP não suportavam a segunda sintaxe.
fonte