html转义标签的开发

html标签的转义:就是将用户在页面写的一些标签直接作为文本显示,而不会作为html显示


1.标签处理器类

package com.jstl.tag.example;

import java.io.IOException;
import java.io.StringWriter;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.JspFragment;
import javax.servlet.jsp.tagext.SimpleTagSupport;

//将输入的内容进行转移处理
public class HtmlFilter extends SimpleTagSupport {

	@Override
	public void doTag() throws JspException, IOException {
		
		JspFragment jf = this.getJspBody();
		StringWriter string = new StringWriter();
	    jf.invoke(string);
	    
	    String content = string.getBuffer().toString();
		content = this.filter(content);
	    this.getJspContext().getOut().write(content);
	  //  this.getJspBody().invoke(null);
	}

	public 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("<");   
	                break;   
	            case '>':   
	                result.append(">");   
	                break;   
	            case '&':   
	                result.append("&");   
	                break;   
	            case '“':   
	                result.append(""");   
	                break;   
	            default:   
	                result.append(content[i]);   
	                break;   
	            }   
	        }   
	        return result.toString();   
	    } 
}

2.在tld文件中进行描述

 
     <tag>
        <description>html标签的转义</description>
        <name>htmlfilter</name>
        <tag-class> com.jstl.tag.example.HtmlFilter</tag-class>
        <body-content>scriptless</body-content>
     </tag>

3.在jsp页面使用

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.jstl.tag.example" prefix="c" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>My JSP 'htmlfilter.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
     
  <body>
      <c:htmlfilter>
        <a href="">点点</a>
      </c:htmlfilter>
  </body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值