当前位置: 代码迷 >> Java Web开发 >> 新手问个小过滤器程序有关问题
  详细解决方案

新手问个小过滤器程序有关问题

热度:595   发布时间:2013-02-25 21:17:57.0
新手问个小过滤器程序问题
是这样,定义了一个要过滤的字符串组String[]{"你妈","傻逼 "};
当提交页面后 显示提交的内容,如果有上面字符串组的内容 即用***代替,
测试过后,问题是 只有“你妈”被过滤掉了,而傻逼没有,求助
Java code
package com.lyq;import java.io.BufferedReader;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.Enumeration;import java.util.Locale;import java.util.Map;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.ServletInputStream;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[];    public void destroy() {        // TODO Auto-generated method stub        this.words=null;    }    public void doFilter(ServletRequest request, ServletResponse response,            FilterChain chain) throws IOException, ServletException {        // TODO Auto-generated method stub        request.setCharacterEncoding("UTF-8");        request=new Request((HttpServletRequest)request);        response.setContentType("text/html;charset="+"UTF-8");        chain.doFilter(request, response);    }    public void init(FilterConfig arg0) throws ServletException {        // TODO Auto-generated method stub        words=new String[]{"你妈","傻逼 "};    }    public String filter(String ss){        try{            if(words!=null){                for(int i=0;i<words.length;i++){                    if(ss.indexOf(words[i])!=-1){                        ss=ss.replace(words[i], "***");                    }                }            }        }        catch(Exception e){            e.printStackTrace();        }        return ss;    }    class Request extends HttpServletRequestWrapper {        public Request(HttpServletRequest request){            super(request);        }        @Override        public String getParameter(String name) {            // TODO Auto-generated method stub            return filter(super.getRequest().getParameter(name));        }        @Override        public String[] getParameterValues(String name) {            // TODO Auto-generated method stub            String []values=super.getRequest().getParameterValues(name);            for(int i=0;i<values.length;i++){                values[i]=filter(values[i]);            }                return values;        }            }}


------解决方案--------------------------------------------------------
String[]{"你妈","傻逼 "};
"傻逼 "后面多了一个空格
  相关解决方案