在发表评论,文章时常常需要过滤一些敏感词... 把自己的拿出来晒晒 1.写个过滤的类: - import java.io.IOException;
- import java.io.InputStream;
- import java.util.Enumeration;
- import java.util.Properties;
- import java.util.regex.Pattern;
- import java.util.regex.Matcher;
-
- public class KeyWordFilter {
-
- private static Pattern pattern = null;
-
- public static void initPattern(){
- StringBuffer patternBuf = new StringBuffer("");
- try{
- InputStream in = KeyWordFilter.class.getClassLoader().getResourceAsStream("word.properties");
- Properties pro = new Properties();
- pro.load(in);
- Enumeration enu = pro.propertyNames();
- while(enu.hasMoreElements()){
- patternBuf.append((String)enu.nextElement()+"|");
- }
- patternBuf.deleteCharAt(patternBuf.length()-1);
- pattern = Pattern.compile(new String(patternBuf.toString().getBytes("ISO-8859-1"), "UTF-8"),Pattern.CASE_INSENSITIVE);
- }catch(IOException ioEx){
- ioEx.printStackTrace();
- }
- }
- public static String doFilter(String str){
- try {
- Matcher m = pattern.matcher(str);
- str = m.replaceAll("*");
- }catch (Exception e){
- e.printStackTrace();
- }
- return str;
- }
- }
2.在控制层进行操作,即action类中,在需要的方法中进行调用 - KeyWordFilter.initPattern();
- String newContent=KeyWordFilter.doFilter(content);
其中content就是显示层传递的参数(需要过滤的)
|