日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用java实现敏感词汇过滤功能

發布時間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用java实现敏感词汇过滤功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 需求
  • 效果
  • 步驟
  • 代碼

需求

當用戶發言內容里有敏感詞匯時,將敏感詞匯變為***并在頁面輸出

效果

1、用戶發言
2、對敏感詞匯“傻逼”進行過濾,顯示發言內容

步驟

1、在工程src源文件下添加文件 敏感詞匯.txt 2、新建一個Filter。在filter的init方法下,讀取敏感詞匯.txt文件里的敏感詞匯,將每一個敏感詞匯添加到一個list中。在filter的doFilter方法中,在放行資源之前,使用動態代理方式,增強獲取參數相關方法。 3、新建一個Servlet,獲取參數值并顯示內容。

代碼

package com.li.web;import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import java.util.ArrayList;@WebFilter( "/*") public class FilterDemo implements Filter {public void destroy() {}public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {//創建動態代理ServletRequest request =(ServletRequest) Proxy.newProxyInstance(req.getClass().getClassLoader(), req.getClass().getInterfaces(), new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {//對執行的方法進行過濾if(method.getName().equals("getParameter")){//將敏感詞匯進行過濾//真實對象執行re.getParameter方法,該方法返回值是參數值,是String類型的String value = (String) method.invoke(req,args);if(value!=null){for (String str : list) {if(value.contains(str)){value = value.replaceAll(str, "***");}}}//System.out.println("filter"+value);return value;}return method.invoke(req,args);}});//放行,第一個參數是代理對象,chain.doFilter(request, resp);}ArrayList<String> list = new ArrayList<String>();//初始化方法中加載資源,這里將敏感詞匯添加到list中public void init(FilterConfig config) throws ServletException {try {//獲取文件真實路徑ServletContext servletContext = config.getServletContext();String realPath = servletContext.getRealPath("/WEB-INF/classes/敏感詞匯.txt");// 讀取文件BufferedReader br = new BufferedReader(new FileReader(realPath));//將文件的每一行數據添加到list中String line = null;while((line=br.readLine())!=null){list.add(line);}System.out.println(list);br.close();}catch (Exception e){e.printStackTrace();}}}

總結

以上是生活随笔為你收集整理的使用java实现敏感词汇过滤功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。