jsp中替换html字符的问题,知道的麻烦说下,先谢谢了.
jsp中替换html字符的问题,知道的麻烦说下,先谢谢了.
我正在用JSP写留言本,关于html字符如"<>"和"回车",原来是在javascript中在提交之前替换掉的.但是javascript由于是在客户端提交的,可以饶过直接提交这些字符,影响安全.
所以想用javabean专门写个这些字符替换的类,但是不知道怎么写,希望大家指教下,先谢谢了.
------解决方案--------------------package com;
public class Change {
public static String TextToHtml(String sourcestr)
{
int strlen;
String restring="", destr = "";
strlen = sourcestr.length();
for (int i=0; i<strlen; i++)
{
char ch=sourcestr.charAt(i);
switch (ch)
{
case '<':
destr = "<";
break;
case '>':
destr = ">";
break;
case '\"':
destr = """;
break;
case '&':
destr = "&";
break;
case 13:
destr = "<br>";
break;
case 32:
destr = " ";
break;
default :
destr = "" + ch;
break;
}
restring = restring + destr;
}
return "" + restring;
}
}
------解决方案--------------------不用手动转换
用<c:out>标签就行了
它会自动转换的
比如<c:out value="<a href='http://www.csdn.net'>csdn</a>"><c:/out>
输出后你在浏览器里看到的就是这个字符串 而不是一个链接
------解决方案--------------------呵,三楼说的已经不错了呢,在学习时,是要注意这个问题的呢,呵.
顶一下吧!
------解决方案--------------------同意5楼,用标签的话就不用自己处理了
struts1.x : <bean:write name="form" property="myBeanProperty" filter="false"/>
struts2.x : <property:write value="myBeanProperty" escape="true"/>
jstl : <c:out>