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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Filter -- 过滤敏感词汇

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

例:將 “壞蛋”? “笨蛋”,變為“***”。

?

1、敏感詞匯

// words.txt 壞蛋 笨蛋

2、首先創建filter

public class FilterDemo implements Filter {@Overridepublic void destroy() {}@Overridepublic void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)throws IOException, ServletException {req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");// 通過動態代理 來增強 getParameter 方法ServletRequest obj = (ServletRequest) Proxy.newProxyInstance(req.getClass().getClassLoader(),req.getClass().getInterfaces(), new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {// 如果執行getParameter方法if (method.getName().equals("getParameter")) {// 獲取該方法返回的 參數String values = (String) method.invoke(req, args);if (values != null) {for (String str : list) {// 如果遇到敏感詞匯,就將其替代為 ***if (values.contains(str)) {values = values.replaceAll(str, "***");}}}// 增強返回值return values;} else {return method.invoke(req, args);}}});obj.setCharacterEncoding("utf-8");// 放行chain.doFilter(obj, resp);}private List<String> list = new ArrayList<String>();@Overridepublic void init(FilterConfig config) throws ServletException {// 加載敏感詞匯到list集合ServletContext context = config.getServletContext();String path = context.getRealPath("\\WEB-INF\\words.txt");System.out.println(path);try {BufferedReader br = new BufferedReader(new FileReader(path));String line = "";while ((line = br.readLine()) != null) {list.add(line);}System.out.println(list);} catch (IOException e) {e.printStackTrace();}}}

3、創建servlet 并測試

@WebServlet("/sd") public class ServletDemo extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");String name = req.getParameter("name");String msg = req.getParameter("msg");System.out.println("servlet : "+name + ":" + msg);}}

--地址欄信息? ?

?

--輸出?

總結

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

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