将HTML写入数据库的基本原则就是将HTML的标签进行编码和解码。
以下是JAVA代码。
/**
* 获取表单参数的数值。
*
* param escapeHTMLTags escapeHTMLTags=true不允许使用htmltag。
*/
public static String getEscapeHTMLParameter(HttpServletRequest request
, String paramName
, String defaultValue) {
String temp = StringUtils.escapeHTMLTags(RequestUtils.getParameter(request
, paramName, true));
if ( (temp == null) || (temp.equals(""))) {
temp = defaultValue;
}
return StringUtils.nullToString(temp);
}
*/
public static final String escapeHTMLTags(String input) {
//Check if the string is null or zero length -- if so, return
//what was sent in.
if (input == null || input.length() == 0) {
return input;
}
//Use a StringBuffer in lieu of String concatenation -- it is
//much more efficient this way.
StringBuffer buf = new StringBuffer(input.length());
char ch = ' ';
for (int i = 0; i < input.length(); i++) {
ch = input.charAt(i);
if (ch == '<') {
buf.append("<");
}
else if (ch == '>') {
buf.append(">");
}
else {
buf.append(ch);
}
}
return buf.toString();
}
html文本写入数据库需要转换的字符:
ado.net中还可以用SQL的参数化SQL语句防止HTML的注入,比如下面的例子,可以将remark的内容视为HTML的内容: