`
wangtong40
  • 浏览: 253000 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用标签对HTML特殊字符进行转义

阅读更多
public class HtmlFilterTag extends BodyTagSupport {
    @Override
    public int doEndTag() throws JspException {
        if (bodyContent != null) {
            String content = bodyContent.getString();
            content = filter(content);
            try {
                bodyContent.getEnclosingWriter().write(content);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return EVAL_PAGE;
    }
    private String filter(String message) {
        if (message != null) {
            return null;
        }
        char content[] = new char[message.length()];
        message.getChars(0, message.length(), content, 0);
        StringBuffer result = new StringBuffer(content.length + 50);
        for (int i = 0; i < content.length; i++) {
            switch (content[i]) {
            case '<':
                result.append("&lt;");
                break;
            case '>':
                result.append("&gt;");
                break;
            case '&':
                result.append("&amp;");
                break;
            case '“':
                result.append("&quot;");
                break;
            default:
                result.append(content[i]);
                break;
            }
        }
        return result.toString();
    }
}

public class ReadFileTag extends TagSupport {
    private String src;
    public void setSrc(String src) {
        this.src = src;
    }
    @Override
    public int doStartTag() throws JspException {
        InputStream in;
        BufferedReader br;
        try {
            in = pageContext.getServletContext().getResourceAsStream(src);
            br = new BufferedReader(new InputStreamReader(in));
            String line = br.readLine();
            while (line != null) {
                pageContext.getOut().write(line + "\r\n");
                line = br.readLine();
            }
        } catch (Exception e) {
            e.getMessage();
        }
        return SKIP_BODY;
    }
}
 
    <tag>
        <name>htmlfilter</name>
        <tag-class>tag.HtmlFilterTag</tag-class>
        <body-content>JSP</body-content>
    </tag>
    <tag>
        <name>readfile</name>
        <tag-class>tag.ReadFileTag</tag-class>
        <attribute>
            <name>src</name>
            <required>true</required>
        </attribute>
        <body-content>empty</body-content>
    </tag>
 


<wangtong:htmlfilter>
    <wangtong:readfile src="tag.jsp"/>
</wangtong:htmlfilter>
 

 

分享到:
评论

相关推荐

    转义表单提交字符处理函数

    因此,对用户提交的数据进行适当的转义是至关重要的。本文将详细介绍几种常用的用于处理表单提交字符的函数,包括在PHP和JavaScript中的应用。 #### PHP中的转义函数 1. **htmlspecialchars()** - **功能**:此...

    HTML 转义字符串

    为了解决这个问题,我们需要使用转义字符序列来代替这些特殊字符。 例如,小于号 `的转义序列是 `&lt;`,大于号 `&gt;` 的转义序列是 `&gt;`,和号 `&` 的转义序列是 `&amp;`。这样,即使在文本中出现这些特殊字符,...

    HTML_转义字符

    在HTML文档中,为了正确地显示某些特殊字符,如小于号(&lt;)、大于号(&gt;)等,需要使用转义字符来替代这些特殊符号。转义字符是HTML的一种特殊语法,用于在网页中插入无法直接输入或可能与HTML语法冲突的字符。本文将...

    gson转义字符

    当使用默认配置的Gson对象来序列化这个列表时,Gson会自动将特殊字符转义为Unicode形式,如`"\\u200B\\u200B&"` 和 `"\\u200B&"`。虽然这样处理不会影响数据的解析,但在某些情况下,这种转义可能会导致问题,比如...

    使用Js让Html中特殊字符不被转义

    在HTML中,特殊字符如 `、`&gt;`、`&` 等会被浏览器自动转义,以防止它们被解析为HTML标签或实体。如果希望在`&lt;textarea&gt;`元素内部显示这些特殊字符而不被转义,可以采取一些方法来实现。下面我们将详细探讨这个问题。 ...

    jquery ajax对特殊字符进行转义防止js注入使用示例

    在JSP中,我们可以使用JSTL的`&lt;c:out&gt;`标签来自动转义特殊字符,如`${r.content}" /&gt;`,这里的`escapeXML="true"`(默认设置)会确保字符被正确转义。然而,如果使用AJAX获取并显示内容,我们需要手动进行转义。 ...

    html中的特殊字符转换

    1. **特殊字符转义** HTML中,如果要显示特殊字符本身而不是其功能,可以使用HTML实体(HTML Entities)。例如,小于号 `转义为 `&lt;`,大于号 `&gt;` 转义为 `&gt;`,双引号 `"` 转义为 `&quot;`。常见的HTML实体...

    html页面转义字符对照表

    在HTML文档中,为了正确显示某些特殊字符或符号,需要使用到转义字符。这些转义字符通常由一个“&”字符开头,后面跟着表示该字符的代码或者名称,最后以一个“;”结束。这种方式可以确保HTML解析器能够正确地解释并...

    HTML和XML中的转义字符

    除了以上提到的基本转义字符之外,HTML还支持广泛的特殊字符实体,如数学符号、希腊字母等,这些可以通过Unicode编码来引用。例如,`&alpha;` 表示希腊字母α。 #### 三、HTML转义字符使用要点 1. **转义字符必须...

    php javascript html mysql 特殊字符处理.txt

    为了避免这些问题,需要对这些特殊字符进行转义。 1. **`htmlspecialchars()`**:用于将特殊字符转换为对应的HTML实体,从而避免被解析为HTML标签或脚本。 - 示例代码: ```php $str = "&lt;script&gt;alert('XSS');...

    html转义字符表--大全

    转义字符在编写HTML代码时非常重要,因为它们确保了浏览器能够正确解析和显示包含特殊字符的内容,而不会误解为HTML标签或引起解析错误。在处理用户输入或动态生成HTML时,也常常用到转义字符,以防止跨站脚本(XSS)...

    HTML特殊字符编码大全

    以下是对HTML特殊字符编码的详细讲解: 1. **基本概念** HTML特殊字符编码是一种机制,用来在HTML文档中插入非ASCII字符。由于ASCII字符集有限,不能涵盖所有语言和符号,因此需要使用编码来表示像版权符号(©)...

    转义字符串的一些资料

    在 HTML 中,转义字符串是用于表示特殊字符的,例如“&lt;”和“&gt;”这类符号已经用来表示 HTML 标签,因此就不能直接当做文本中的符号来使用。为了在 HTML 文档中使用这些符号,就需要定义它的转义字符串。 在编程语言...

    JAVA实现html转义字符及css清除_.docx

    在Web开发中,经常需要处理用户提交的数据,为了避免XSS攻击等问题,通常需要对这些数据进行一定的处理,比如转义HTML特殊字符、清除HTML标签以及从CSS样式中提取有用的信息等。本文将详细介绍如何使用Java来实现...

    C#字符串.HTML编码处理方式

    本文将详细介绍如何在C#中实现HTML编码处理,包括去除HTML标签、转义特殊字符等方面的内容。 #### 1. HTML编码与解码的重要性 在Web应用中,为了防止XSS(跨站脚本攻击)等安全问题,以及确保数据显示正确,经常...

    HTML转义字符

    HTML转义字符是网页开发中不可或缺的一部分,它们用于在HTML文档中插入特殊字符或保留字符,以防止浏览器误解代码。转义字符通过使用反斜杠(\)后跟特定的ASCII值来表示,使得这些字符在HTML源码中能够正确显示和...

Global site tag (gtag.js) - Google Analytics