首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

JSP 輸出 HTML 字串為瀏覽器可識別標籤的兩種方法

     編輯:Java 綜合教學

JSP 輸出 HTML 字串為瀏覽器可識別標籤的兩種方法

當資料庫儲存的內容包含 HTML 標籤(如富文本編輯器輸出),直接在 JSP 以 ${content} 輸出會被轉義顯示為原始標籤文本。需將 HTML 字串作為標籤渲染,有兩種常用方案。

方法一:Scriptlet 直接輸出(不推薦,僅示範)

<%
    out.println("<table><tr><td>內容</td></tr></table>");
%>

缺點:混合 Java 代碼與視圖,違背 MVC 分層,難以維護。

方法二:JSTL <c:out> 關閉轉義(推薦)

<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<c:out value="${content}" escapeXml="false" />

原理:<c:out> 預設 escapeXml=true,會將 < > & 等轉為實體;設為 false 則原樣輸出,瀏覽器解析為標籤。

安全性提醒

  • XSS 風險:若 content 來自不可信用戶輸入,關閉轉義會導致腳本注入。
  • 防護建議:
    1. 儲存前使用 Jsoup.clean() 或 OWASP Java HTML Sanitizer 白名單過濾標籤/屬性。
    2. 或僅在完全受信內容(如後台管理員編輯的靜態頁片段)使用 escapeXml="false"。

完整範例

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<html>
<body>
<h3>富文本內容渲染</h3>
<c:out value="${article.content}" escapeXml="false" />
</body>
</html>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved