Odpowiedzi:
c:out
wymyka znaki HTML, dzięki czemu można uniknąć skryptów między witrynami.
Jeśli person.name = <script>alert("Yo")</script>
skrypt zostanie wykonany w drugim przypadku, ale nie podczas używania c:out
Jak powiedział Will Wagner, w starej wersji jsp powinieneś zawsze używać c:out
do generowania dynamicznego tekstu.
Co więcej, używając tej składni:
<c:out value="${person.name}">No name</c:out>
możesz wyświetlić tekst „No name”, gdy nazwa jest pusta.
c:out
ma również atrybut do przypisywania wartości domyślnej, jeśli wartość person.name
jest równa null.
Możesz jawnie włączyć ucieczkę jednostek XML, używając atrybutu wartości escapeXml równej true. FYI, domyślnie jest to „prawda”.
Starsze wersje JSP nie obsługiwały drugiej składni.