java - 在保存到数据库之前如何在 JSP 中转义 html?

标签 java database jsp escaping

我目前正在学习 JSP 和 Java,并编写了一个(非常)简单的留言簿来开始使用 JSP。但我想确保没有人可以使用 CSS,所以我需要在将 HTML 代码保存到我的 mySQL 数据库之前删除它。我已经在这里搜索并找到了“

  PreparedStatement pStmt = conn.prepareStatement("INSERT INTO test VALUES (ID, ?, ?)");

  pStmt.setString(1, request.getParameter("sender"));
  pStmt.setString(2, request.getParameter("text"));
  pStmt.executeUpdate();

那么这样做的正确方法是什么?

最佳答案

简答:看看org.apache.commons.lang.StringEscapeUtils.escapeHtml() .

更详细的答案:转义 HTML 是表示代码的工作,而不是数据库代码。如果出于某种原因,您想在非 Web 环境(例如经典 GUI)中的某个时刻显示您的数据怎么办?你将不得不取消整个事情,否则它会显示总垃圾。

只需按原样保存数据,并确保在显示数据之前立即转义从用户那里获得的一切(好吧,也许不是存储为数字的数字,但你明白了)。

如果您使用的是 AJAX,则可以更进一步,仅在 JavaScript 中转义字符串(或使用 innerText)。

关于java - 在保存到数据库之前如何在 JSP 中转义 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/792974/

相关文章:

java - 使用时区java将字符串转换为适当的日期

java - 解释器的访问者模式 - 基于实例类型调用方法

database - 为什么 qry.post 以异步方式执行?

PHP/MySQL 选择查询问题

java - 如何在 Struts 1.2 中验证对 JSP 页面的请求

java - 生成的pdf文件保存在项目文件夹内

java - 对于从下拉框中选择的特定值,在下拉列表中显示其对应的值吗?

java - 将 JDialog 转换为 Jframe/JPanel

java - 使用 Oracle SEQUENCES 和 SQL-Server IDENTITIES 生成 Hibernate id

php - 连接到数据库而不写入警告/错误消息