html在线过滤器,HTML特殊字符过滤器

package com.pdsu.filter;

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletRequestWrapper;

import javax.servlet.http.HttpServletResponse;

/**

* 类说明:HTML特殊字符过滤器

*

* @author 作者: LiuJunGuang

* @version 创建时间:2011-11-18 下午07:36:44

*/

public class HTMLCharacterFilter implements Filter {

public void init(FilterConfig filterConfig) throws ServletException {

}

public void doFilter(ServletRequest req, ServletResponse resp,

FilterChain chain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) req;

HttpServletResponse response = (HttpServletResponse) resp;

chain.doFilter(new HTMLCharacterRequest(request), response);

}

public void destroy() {

}

}

// html特殊字符处理类

class HTMLCharacterRequest extends HttpServletRequestWrapper {

public HTMLCharacterRequest(HttpServletRequest request) {

super(request);

}

@Override

public String getParameter(String name) {

return filter(super.getParameter(name));

}

@Override

public String[] getParameterValues(String name) {

String[] values = super.getParameterValues(name);

if (values == null || values.length == 0)

return values;

for (int i = 0; i < values.length; i++) {

String str = values[i];

values[i] = filter(str);

}

return values;

}

/**

* 对特殊的html字符进行编码

*

* @param message

* @return

*/

private 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("<");

break;

case '>':

result.append(">");

break;

case '&':

result.append("&");

break;

case '"':

result.append(""");

break;

default:

result.append(content[i]);

}

}

return (result.toString());

}

}

在web.xml中添加如下内容:

HTMLFiter

com.pdsu.filter.HTMLCharacterFilter

HTMLFiter

/*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值