/*** 敏感词汇过滤器*/
@WebFilter("/*")
public class SensitiveWordsFilter implements Filter {public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {//1.创建代理对象,增强getParameter方法ServletRequest proxy_req = (ServletRequest) Proxy.newProxyInstance(req.getClass().getClassLoader(), req.getClass().getInterfaces(), new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {//增强getParameter方法//判断是否是getParameter方法if(method.getName().equals("getParameter")){//增强返回值//获取返回值String value = (String) method.invoke(req,args);if(value != null){for (String str : list) {if(value.contains(str)){value = value.replaceAll(str,"***");}}}return  value;}//判断方法名是否是 getParameterMap//判断方法名是否是 getParameterValuereturn method.invoke(req,args);}});//2.放行chain.doFilter(proxy_req, resp);}private List<String> list = new ArrayList<String>();//敏感词汇集合public void init(FilterConfig config) throws ServletException {try{//1.获取文件真实路径ServletContext servletContext = config.getServletContext();String realPath = servletContext.getRealPath("/WEB-INF/classes/敏感词汇.txt");//2.读取文件BufferedReader br = new BufferedReader(new FileReader(realPath));//3.将文件的每一行数据添加到list中String line = null;while((line = br.readLine())!=null){list.add(line);}br.close();System.out.println(list);}catch (Exception e){e.printStackTrace();}}public void destroy() {}}

java敏感词汇过滤工具类相关推荐

  1. JAVA -敏感词过滤器 工具类SensitiveFilter

    1.添加敏感词过滤工具类 类1: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStre ...

  2. 敏感词过滤工具类(DFA算法匹配字典)

    直接调用方法:wordFilter package com.util;import java.io.BufferedReader; import java.io.FileNotFoundExcepti ...

  3. Java 敏感词过滤,Java 敏感词替换,Java 敏感词工具类

    Java 敏感词过滤,Java 敏感词替换,Java 敏感词工具类 =========================== ©Copyright 蕃薯耀 2017年9月22日 http://fansh ...

  4. Java基于Socket实现聊天、群聊、敏感词汇过滤功能

    首先的话,这个代码主要是我很久以前写的,然后当时还有很多地方没有理解,现在再来看看这份代码,实在是觉得丑陋不堪,想改,但是是真的改都不好改了- 所以,写代码,规范真的很重要. 实现的功能: 用户私聊 ...

  5. 动态代理的分析以及利用动态代理模式进行敏感词汇过滤

    动态代理 增强对象的功能: 设计模式:一些通用的解决固定问题的方式 代理模式 概念: (1). 真实对象:被代理的对象 (2). 代理对象: (3). 代理模式:代理对象代理真实对象,达到增强真实对象 ...

  6. PHP敏感词汇过滤SDK(树形结构遍历命中违禁词)

    先介绍一下匹配敏感词原理吧,因为没有工具,画的很糙,有疑问直接联系我.(绿色箭头代表命中敏感词,灰色:未命中) base 确定有穷自动机(DFA)算法 比如说"可以"是敏感词,那么 ...

  7. java项目常用的工具类

    前言 在开发过程中,我们会遇到很多繁琐或者棘手的问题,但是,这些问题往往会存在一些便捷的工具类,来简化我们的开发,下面是我工作中经常使用到的工具类 常用工具类 日期工具类 import java.te ...

  8. 【敏感词汇过滤算法】基于DFA-前缀树的敏感词汇过滤算法(项目实用)

    在敏感词汇过滤这块,不同的算法所造成的性能差异是非常大的,选择一个合适的算法非常重要.因为以前做算法的时候做过类似前缀树的字符串匹配之类的算法,所以一开始就打算用前缀树做的,后面了解了一下DFA的相关 ...

  9. java图片缩放工具类,一个JAVA图形缩放处置工具类

    一个JAVA图形缩放处理工具类 调用的例子 import java.io.FileOutputStream; import java.io.IOException; import javax.imag ...

  10. JAVA I/O流工具类TextFile

    JAVA I/O流工具类TextFile由广州疯狂软件java培训分享: 本文是一个TextFile类,通过这个类我们可以调用其中的方法来简化对文件的读写,这段代码的可用性比较强.这个TextFile ...

最新文章

  1. ASP.NET Session 详解
  2. 硬盘接口的类型介绍和比较
  3. Ado.net连接池 sp_reset_connection 概念
  4. Java 参数数后面跟三个点(...)的含义
  5. 打开高效文本编辑之门_Linux awk之关联数组
  6. micropython微控制器_MicroPython:针对微控制器的Python
  7. 带你体验云原生场景下 Serverless 应用编程模型
  8. 第五章 基于时序差分和Q学习的无模型预测与控制-强化学习理论学习与代码实现(强化学习导论第二版)
  9. 65、未授权访问的TIPS
  10. 计算机的显卡控制面板在哪里,nvidia控制面板在哪,详细教您如何进入英伟达控制面板...
  11. Python实现股票数据接口
  12. c语言课后编程题第八章答案,C语言课后编程题答案.doc
  13. echarts 半圆形进度条
  14. 4g能用吗64java,4g内存能不能装64位系统吗_电脑内存是4g可以安装64位系统吗
  15. 在ubuntu下连接e-SATA硬盘
  16. 手动删除oracle数据库
  17. springboot不停机更新(配合Nginx优雅发版)
  18. HDMI设计1--HDMI 1.4b SPEC的阅读个人总结
  19. 系统学习深度学习(六) --LSTM总结
  20. 喝可乐问题,2个空瓶换一瓶可乐

热门文章

  1. 扫雷游戏网页版_借“买量”造爆款,梦幻西游网页版击穿H5游戏天花板
  2. Multisim14.0的详细安装步骤
  3. 拉普拉斯金字塔融合原理浅析
  4. oracle打开dmp文件乱码,oracle中导入dmp字符乱码分析和解决方案
  5. Python源码剖析 电子书 配套资源 配套代码
  6. 新萝卜家园 ghost xp3 2013 5月纯净版
  7. Vue全家桶 之 KTV前台收银管理系统 (不想努力啦,回家收钱去)
  8. 2018年通信工程师中级传输与接入无线专业实务真题
  9. Ansys Maxwell三相变压器制作方法教程
  10. Docker配置阿里云加速器