package com.web.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 org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
public class ParamFilter implements Filter {
private String[] paramArray=null;
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest req, ServletResponse rep,FilterChain fc) throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest)req;
HttpServletRequestWrapper hrw=new HttpServletRequestWrapper(request){
@Override
public String getParameter(String name) {
String value=super.getParameter(name);
if(StringUtils.isNotBlank(value)){
value=filterValue(value);
}
return value;
}
};
fc.doFilter(hrw, rep);
}
/**
* 获取配置参数
*/
@Override
public void init(FilterConfig fc) throws ServletException {
String value=fc.getInitParameter("sql");
if(StringUtils.isNotBlank(value)){
paramArray=value.split(",");
}
}
/**
* 过滤关键字
* @param value
* @return
*/
private String filterValue(String value){
//html标签转义
value=StringEscapeUtils.escapeHtml4(value);
//自定义的关键字过滤
for(int i=0;paramArray!=null&¶mArray.length>0;i++){
value=value.replaceAll(paramArray[i], "");
}
return value;
}
}
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 org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
public class ParamFilter implements Filter {
private String[] paramArray=null;
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest req, ServletResponse rep,FilterChain fc) throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest)req;
HttpServletRequestWrapper hrw=new HttpServletRequestWrapper(request){
@Override
public String getParameter(String name) {
String value=super.getParameter(name);
if(StringUtils.isNotBlank(value)){
value=filterValue(value);
}
return value;
}
};
fc.doFilter(hrw, rep);
}
/**
* 获取配置参数
*/
@Override
public void init(FilterConfig fc) throws ServletException {
String value=fc.getInitParameter("sql");
if(StringUtils.isNotBlank(value)){
paramArray=value.split(",");
}
}
/**
* 过滤关键字
* @param value
* @return
*/
private String filterValue(String value){
//html标签转义
value=StringEscapeUtils.escapeHtml4(value);
//自定义的关键字过滤
for(int i=0;paramArray!=null&¶mArray.length>0;i++){
value=value.replaceAll(paramArray[i], "");
}
return value;
}
}