KeywordFilter.java:
1. import java.io.InputStream;
2. import java.util.Enumeration;
3. import java.util.Properties;
4. import java.util.regex.Matcher;
5. import java.util.regex.Pattern;
6.
7. public class KeywordFilter
8. {
9. private static Pattern pattern = null;
10.
11. private static KeywordFilter filter = new KeywordFilter();
12.
13. public static KeywordFilter getInstance()
14. {
15. return (null == filter)?new KeywordFilter():filter;
16. }
17.
18. private KeywordFilter()
19. {
20. init();
21. }
22.
23. private void init()
24. {
25. StringBuilder stringBuilder = new StringBuilder();
26.
27. try
28. {
29. InputStream in = KeywordFilter.class
30. .getResourceAsStream("keyword.properties");
31.
32. Properties pro = new Properties();
33.
34. //Thread.sleep(5000);
35.
36. pro.load(in);
37.
38. Enumeration<?> enu = pro.propertyNames();
39.
40. while (enu.hasMoreElements())
41. {
42. stringBuilder.append(enu.nextElement() + "|");
43. }
44.
45. stringBuilder.deleteCharAt(stringBuilder.length() - 1);
46.
47. pattern = Pattern.compile(new String(stringBuilder.toString()
48. .getBytes("ISO-8859-1"), "UTF-8"));
49.
50. } catch (Exception ex)
51. {
52. ex.printStackTrace();
53. }
54. }
55.
56. public String doFilter(String str)
57. {
58. Matcher m = pattern.matcher(str);
59.
60. str = m.replaceAll("***");
61.
62. return str;
63. }
64.
65. }
keyword.properties文件放在同一目录下,其内容就是要屏蔽的词语的集合,每个词语用“|”分割
如下
暴力|血腥
分享到:
相关推荐
### 部分关键字过滤的重要性及其实现方法 在当今互联网时代,用户生成内容(User Generated Content, UGC)已成为网站的重要组成部分。然而,这也带来了新的挑战:如何确保用户提交的内容既安全又合规?其中一个...
过滤关键字的时候执行的操作都是hashMap.get,所以效率非常高 具体下载java源码查看 在普通双核三星笔记本上,加载4000个关键字后 1.执行1万次判断是否包含关键字的操作耗时30ms 2.执行1万次替换关键字的操作耗时...
在Java编程领域,日志文件过滤是一个至关重要的实践,它主要涉及到如何管理和分析应用程序生成的日志数据。日志记录是程序运行过程中的诊断工具,它记录了程序运行时的事件和异常,帮助开发者追踪错误、优化性能。本...
本文将详细解析"filter过滤关键字"这一主题,帮助你理解和掌握其核心知识点。 首先,`filter`通常指的是一个可以接受输入数据并根据特定条件筛选出符合条件部分的函数或方法。在描述中提到的“配置文件”中指定过滤...
在Java编程语言中,提取文章关键字是一项常见的自然语言处理任务,它涉及到文本挖掘和信息检索领域。这个任务的目的是从一篇文章中识别出最具代表性的词语或短语,这些词汇通常反映了文章的主题和核心内容。在Java中...
本文介绍了一个在JavaScript中过滤关键字的方法,该方法可以被用于网页中,实现对特定关键字的高亮显示。 首先,文中给出了过滤关键字的基本思路。关键步骤包括定义一个包含关键字的数组,使用正则表达式将这些...
java编写的匹配关键字,并替换关键字,提供关键字设置,替换敏感词 java编写的匹配关键字,并替换关键字,提供关键字设置,替换敏感词 java编写的匹配关键字,并替换关键字,提供关键字设置,替换敏感词 java编写的...
在Java编程中,根据过滤条件显示树形结构是一项常见的任务,尤其在数据管理、文件系统或者GUI应用中。树形结构是一种数据结构,它通过节点的层级关系来组织数据,通常用于表示具有层次性的信息。在这个场景下,我们...
该项目为基于Java语言的DFA关键字过滤算法设计源码,共计33个文件,涵盖13个XML配置文件、6个Java类文件、4个JSP页面文件、4个JAR库文件、3个Java源文件、2个Markdown说明文件以及1个IntelliJ IDEA项目配置文件。...
为了解决这个问题,我们可以创建一个名为`SqlInjectionFilter`的Java过滤器,该过滤器将在HTTP请求到达实际处理请求的Servlet之前运行。过滤器的主要任务是检查请求参数,确保它们不包含任何可能导致SQL注入的恶意...
6. **安全考虑**:除了基本的关键字过滤,还应注意SQL注入和XSS攻击。使用PreparedStatement防止SQL注入,对用户输入进行转义或使用HTML sanitization库防止XSS。 7. **日志记录**:记录被屏蔽的关键字和相关用户...
在Java开发中,请求参数过滤拦截是一个至关重要的环节,它涉及到系统的安全性、稳定性和数据的正确性。这里的“java请求参数过滤拦截”主要是指在接口接收到用户输入的数据时,通过过滤器(Filter)对参数进行检查,...
本篇文章将深入探讨如何在Java中实现一个防SQL注入的过滤器,以及它的重要性。 SQL注入的原理是利用应用程序处理用户输入数据时的不足,将恶意SQL语句嵌入到原本合法的查询中。例如,如果一个登录接口的用户名字段...
### 六个有用的Java过滤器知识点详解 在Java Web开发中,过滤器(Filter)是一种非常重要的技术,它能够对用户的请求和响应进行预处理或后处理,从而实现各种功能需求,例如设置缓存策略、登录验证、字符编码转换等...
2. **文件扩展名过滤**:为了使搜索更精确,软件允许用户指定只在特定类型的文件(如`.txt`、`.java`等)中进行搜索,这样可以避免在不必要的文件类型上浪费时间。 3. **大小写敏感/不敏感**:根据实际需求,用户...
在Java Web开发中,过滤器(Filter)是一个非常重要的组件,它允许开发者在请求被处理之前或之后执行一些额外的操作。下面将详细讲解Java中五种常用的过滤器及其应用场景。 1. **使浏览器不缓存页面的过滤器** ...
在开发Web应用,尤其是搭建论坛或社区类网站时,关键字过滤是一个重要的功能模块。它主要用于防止用户发布含有敏感词汇或不适宜内容的信息,确保网络环境的健康与和谐。本项目中,我们关注的是如何在JSP(Java ...
管道过滤器模式是一种设计模式,它在软件工程中被广泛应用于数据处理,特别是在Java编程语言中。这种模式通过连接一系列的处理组件(过滤器),每个组件执行特定的任务,来实现复杂的数据转换。在这个场景中,"管道...
本项目"基于jsp的非法关键字过滤功能"专注于使用JavaServer Pages(JSP)来实现这一功能,对于学习如何在Web应用中实施安全策略的开发者来说具有很高的参考价值。 JSP是Java平台上的一个服务器端脚本语言,它允许...
3. **关键字识别过滤器**:这个阶段,程序会寻找用户指定的关键词,并记录其出现的位置。 4. **上下文提取过滤器**:一旦找到关键词,过滤器会提取关键词周围的上下文,通常包括前面和后面的几个单词,形成KWIC格式...