1.jsp调用代码

<t:htmlFilter>
<a href="${pageContext.request.contextPath }/index.jsp">link</a>
</t:htmlFilter>

2.tld文件代码

<tag>
<name>htmlFilter</name>
<tag-class>de.bvb.web.tag.HtmlFilterTag</tag-class>
<body-content>scriptless</body-content>
</tag>

3.标签实现类代码

package de.bvb.web.tag;

import java.io.IOException;
import java.io.StringWriter; import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport; public class HtmlFilterTag extends SimpleTagSupport {
@Override
public void doTag() throws JspException, IOException {
StringWriter sw = new StringWriter();
JspFragment jf = this.getJspBody();
jf.invoke(sw);
String content = sw.getBuffer().toString();
content = filter(content);
((PageContext) this.getJspContext()).getOut().write(content);
} //copy from apache-tomcat-8.0.9/webapps/examples/WEB-INF/classes/util/HTMLFilter.java
public String filter(String message) {
if (message == null)
return (null);
char content[] = new char[message.length()];
message.getChars(0, message.length(), content, 0);
StringBuilder result = new StringBuilder(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]);
}
}
return (result.toString());
}
}

javaWeb 使用jsp开发 html过滤标签的更多相关文章

  1. javaWeb 使用jsp开发 if else 标签

    1.jsp页面调用代码 <t:choose> <t:when test="${user==null }">还没有登录</t:when> < ...

  2. javaWeb 使用jsp开发 foreach 标签

    1.jsp代码 测试数据 <% List<String> list = new ArrayList<String>(); list.add("aaa" ...

  3. javaWeb 使用jsp开发 if 标签

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  4. javaWeb 在jsp中 使用自定义标签输出访问者IP

    1.java类,使用简单标签,jsp2.0规范, 继承 SimpleTagSupport public class ViewIpSimpleTag extends SimpleTagSupport { ...

  5. 深入分析JavaWeb Item23 -- jsp自己定义标签开发入门

    一.自己定义标签的作用 自己定义标签主要用于移除Jsp页面中的java代码. 二.自己定义标签开发和使用 2.1.自己定义标签开发步骤 1.编写一个实现Tag接口的Java类(标签处理器类) 要编写一 ...

  6. JavaWeb之 JSP:自定义标签

    当jsp的内置标签和jstl标签库内的标签都满足不了需求,这时候就需要开发者自定义标签. 自定义标签 下面我们先来开发一个自定义标签,然后再说它的原理吧! 自定义标签的开发步骤 步骤一 编写一个普通的 ...

  7. JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

    JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...

  8. JSP内置标签 JSP中JavaBean标签 JSP开发模式 EL和JSTL快速入门

    2 JSP内置标签(美化+业务逻辑)   1)为了取代<%%>脚本形式,使用JSP标签/JSP动作,目的:与JSP页面的美化,即JSP面页都是由标签组成,不再有其它的内容   2)JSP内 ...

  9. JavaWeb之 JSP:自定义标签的创建和使用

    当jsp的内置标签和jstl标签库内的标签都满足不了需求,这时候就需要开发者自定义标签. 下面我们先来开发一个自定义标签,然后再说它的原理吧! 自定义标签的开发步骤 步骤一 编写一个普通的java类, ...

随机推荐

  1. iptables conntrack有什么用

    iptables conntrack有什么用 http://zhidao.baidu.com/link?url=Eh5SRuplbsY_WkxxGkH4bpEyfMnHAe1RwJYSVlRYGKFU ...

  2. SQLServer数据库的一些全局变量

    select APP_NAME ( ) as w --当前会话的应用程序 select @@IDENTITY --返回最后插入的标识值 select USER_NAME() --返回用户数据库用户名 ...

  3. javascript学习之JSON

    JSON本来是javascript的一个自己,后来已经成为了一种独立的数据格式,在web应用中运用极其广泛. 与javascript对象不同的是,JSON中的属性名任何时候都必须加双引号. javaS ...

  4. Perl Print Win32 Console Windows 控制台 print Unicode 问题

    参考资料: https://stackoverflow.com/questions/15224400/perl-on-windows-problems-with-encoding https://te ...

  5. iOS调用HTML

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. fail2ban使用

    转子: http://www.2cto.com/Article/201406/310910.html 1.fail2ban简介: fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹 ...

  7. Java基础之访问文件与目录——创建目录(CreatingDirectories)

    控制台程序,使用两种方法来创建目录. import java.nio.file.*; import java.io.IOException; public class CreatingDirector ...

  8. mapreduce小结

    (不断更新) MapReduce架构是一种分布式编程架构,它本质上是将任务划分,然后归并.它是以数据为中心的编程架构,相比与分布式计算和并行计算等,它更看重的是吞吐率.它处理的数据是PB级的数据,它并 ...

  9. c# 访问ftp

    ftp从服务器上获取通信设备吐出的mr数据,该方案估计在通信行业上一个很普遍的一种方案,很奇怪为什么不把这些数据直接存储到数据库中呢,比如hadoop,反而还需要第三方搞网优的软件开发人员从ftp上读 ...

  10. 转:Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)

    Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...