我现在正在学习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)。