[Java] java屏蔽非法字符 →→→→→进入此内容的聊天室

来自 , 2020-06-09, 写在 Java, 查看 126 次.
URL http://www.code666.cn/view/6c8dba7d
  1. package com.bingyang.model;
  2.  
  3. import java.io.IOException;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import java.util.StringTokenizer;
  7.  
  8. import javax.servlet.Filter;
  9. import javax.servlet.FilterChain;
  10. import javax.servlet.FilterConfig;
  11. import javax.servlet.ServletException;
  12. import javax.servlet.ServletRequest;
  13. import javax.servlet.ServletResponse;
  14.  
  15. public class WordFilter implements Filter
  16. {
  17. private List<String> unString;
  18. /**
  19.  * 过滤器初始化,将要屏蔽的字符串都加载到list集合中.
  20.  */
  21. public void init(FilterConfig filterConfig) throws ServletException
  22. {
  23.     unString = new ArrayList<String>();
  24.     String aa="日,tmd,TMD,滚蛋,系统";
  25.     StringTokenizer st = new StringTokenizer(aa, ",");
  26.     while(st.hasMoreElements()){
  27.             unString.add(st.nextElement().toString());
  28.     }
  29. }
  30.  
  31. public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
  32.     throws IOException, ServletException
  33. {
  34.         request.setCharacterEncoding("utf-8");
  35.     String content = request.getParameter("content");//需要过滤的参数
  36.     if(content!=null){
  37.         for (int i = 0; i < unString.size(); i++)
  38.         {
  39.             String strIllegal = unString.get(i);
  40.             if (content.indexOf(strIllegal) >= 0)
  41.             {
  42.                 content = content.replaceAll(strIllegal, "*");//非法字符替换成*
  43.             }
  44.             request.setAttribute("content", content);//为request设置属性保存修改后的值
  45.         }
  46.     }
  47.     chain.doFilter(request, response);
  48. }
  49. public void destroy()
  50. {
  51.     //System.out.println("过滤器销毁");
  52. }
  53. }//源代码片段来自云代码http://yuncode.net
  54.                        

回复 "java屏蔽非法字符"

这儿你可以回复上面这条便签

captcha