Jawaban:
c:out
lolos dari karakter HTML sehingga Anda dapat menghindari pembuatan skrip lintas situs.
jika person.name = <script>alert("Yo")</script>
skrip akan dieksekusi dalam kasus kedua, tetapi tidak saat menggunakan c:out
Seperti yang dikatakan Will Wagner, di versi lama jsp Anda harus selalu menggunakan c:out
untuk mengeluarkan teks dinamis.
Selain itu, menggunakan sintaks ini:
<c:out value="${person.name}">No name</c:out>
Anda dapat menampilkan teks "Tanpa nama" jika nama kosong.
c:out
juga memiliki atribut untuk menetapkan nilai default jika nilai person.name
kebetulan bernilai null.
Anda dapat secara eksplisit mengaktifkan pelolosan entitas Xml dengan menggunakan atribut nilai escapeXml sama dengan true. FYI, itu secara default "benar".
Versi JSP yang lebih lama tidak mendukung sintaks kedua.