日期:2014-05-18  浏览次数:20589 次

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 = "&lt;";
break;
case '>':
destr = "&gt;";
break;
case '\"':
destr = "&quot;";
break;
case '&':
destr = "&amp;";
break;
case 13:
destr = "<br>";
break;
case 32:
destr = "&nbsp;";
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>