Bạn có thể sử dụng JSTL core:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Sử dụng <c:out value="${someString}"/>
tag để hiển thị Strings. <c:out>
thoát các ký tự HTML để bạn có thể tránh việc tạo mã cross-site, bạn có thể chỉ định bằng cách đặt thuộc tính escapeXml=true
. Một lợi thế khác là bạn cũng có thể cung cấp giá trị mặc định trong trường hợp value
đánh giá là null
.
Bạn cũng có thể sử dụng chức năng fn:escapeXml()
EL. Bạn cần phải bao gồm JSTL functions cho điều đó.
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
Một cách khác có thể, sẽ xây dựng một tùy chỉnh ELResolver.
Bật tùy chỉnh hành vi phân giải thuộc tính và biến đối với đánh giá biểu thức EL.
This blog cung cấp ví dụ làm việc về cách thực hiện.
Đối với toàn bộ ứng dụng Spring MVC, bạn có thể chỉ định thoát trong web.xml:
<context-param>
<param-name>defaultHtmlEscape</param-name>
<param-value>true</param-value>
</context-param>
Nhưng sau đó thoát chỉ áp dụng cho spring
thẻ, như:
<form:input path="formField" htmlEscape="true" />
Cuối cùng, bạn có thể thử thư viện của bên thứ ba XSSFilter.
Are u muốn thực hiện thẻ hoặc xóa thẻ? – newuser
Có thể trùng lặp: http: //stackoverflow.com/questions/4948532/where-should-i-escape-html-strings-jsp-page-or-servlets –
@newuser Tôi muốn thoát khỏi nó, vì vậy người dùng nhìn thấy '< script' dưới dạng văn bản trong trang. –