特殊字符的输出编码,如!“#

时间:2014-01-09 13:57:46

标签: java spring jsp

在spring框架中,我们有类似下面的内容来转义html字符

<context-param>
    <param-name>defaultHtmlEscape</param-name>
    <param-value>true</param-value>
</context-param>

我还想添加一个自定义类,它也可以转义像

这样的字符
!"#$%&*+/:;=?@[]^`{|}~\

在Spring框架中是否有一个类来执行此操作?(我认为,否)如果没有,我可以使用可以转换所有字符的实用程序类。

使用像过滤器这样的实用程序类来对值进行编码(输入验证)

我想知道我是否可以使用相同的过滤器来编码输出? 问题输出仍然显示与输入的值相同,而不是&amp;LT;的{​​{1}}编码。非常感谢任何建议!

2 个答案:

答案 0 :(得分:4)

也许您可以使用Apache commons。它有逃脱和unescape的工具

答案 1 :(得分:1)

您可以添加自定义类并使用 StringEscapeUtils 功能。

示例代码:

import org.apache.commons.lang.StringEscapeUtils;

public class CustomClass
{

    public static void main(String args[]){

        String testStr = "< > \" &";

        System.out.println("Original : " + testStr);

        System.out.println("Escaped : " + StringEscapeUtils.escapeHtml(testStr));

    }   
}

参考:http://www.mkyong.com/java/how-to-escape-special-characters-in-java/