jsp+servlet+fliter实现非法字符过滤
创建WordFilter类
package com.wt.wordFilter;
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;
public class WordFilter implements Filter {
private String[] words;
private String encoding;
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
encoding = fConfig.getInitParameter("encoding");
words = new String[]{
"卧槽","我草","我cao","操你妈","傻逼","sb","fuck"};
}
/**
* 具体过滤方法,并将非法字符替换成“***”
*/
public String filter(String param){
if(words!=null&&words.length>0){
for(int i=0;i<words.length;i++){
if(param.indexOf(words[i])!= -1){
param = param.replaceAll(words[i], "***");
}
}
}
return param;
}
/**
* 一般使用ServletRequest对象获取表单提交的数据,
* (主要通过 getParameter() 和 getParameterValues()
* 方法获取),再此创建内部类Request,重写getParameter()
* 和 getParameterValues(),并在重写的两个方法中实现过滤