代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
对敏感词汇的过滤
作者:
大萝卜
/ 发布于
2015/8/3
/
597
敏感词汇
package web.filter; import java.io.BufferedReader; import java.io.File; import java.io.FileFilter; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class WordFilter implements Filter { // 定义存放敏感词汇的集合 List<String> seqing = new ArrayList<String>(); List<String> fandong = new ArrayList<String>(); List<String> zhengzhi = new ArrayList<String>(); @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; // 用户提交的信息 String word = request.getParameter("word"); // 资源库比对 Pattern for (String des : seqing) { // 自定义正则 Pattern pattern = Pattern.compile(des);// 正则匹配对象 资源库中每一个词汇 做成一个匹配正则 // 和目标用户提交 数据进行比对 Matcher m = pattern.matcher(word); // 判断是否 符合条件 if (m.find()) { // m.find 找到... 非法言论 取出用户数据 m.group response.getWriter().print( "您的消息非法.....<font color='red' size='10px'>" + m.group().replace(m.group(), "我喜欢你") + "</font>"); // 不放行!!! return; } } // for 循环完成 没有执行if 语句 放行 chain.doFilter(request, response); } @Override public void init(FilterConfig arg0) throws ServletException { // 加载 敏感词汇读进来.... // 1: 找路径... 2:循环读取.... 3:存放到 List<String> // 类加载器 : 获取 src 路径 类路径 String path = this.getClass().getClassLoader().getResource("").getPath().substring(1); // E:/all_apaches/apache-tomcat-6.0.32/apache-tomcat-6.0.32/webapps/filter/WEB-INF/classes/ File f = new File(path); if (f.exists()) { // 读取文件 文件过滤器 !! FileFilter xxx|1 // 1: 获取该目录下所有文件 File[] files = f.listFiles(new FileFilter() { // 文件过滤器的使用 @Override public boolean accept(File f) { // 过滤需要的文件 if (f.getName().endsWith(".txt")) { return true; } return false; } }); for (File file : files) { // 文件全部读取 放入不同对应集合中 try { BufferedReader br = new BufferedReader( new InputStreamReader(new FileInputStream(file),"gbk"));// i/o 流的读取 // 集合添加数据 String line = null; while ((line = br.readLine()) != null) { String arr[] = line.split("\\|"); // xxx 1 2 3 // 录入员 没有添加 | if (arr.length > 1) { // 添加指定数组 if ("1".equals(arr[1].trim())) { seqing.add(arr[0]); } if ("2".equals(arr[1].trim())) { fandong.add(arr[0]); } if ("3".equals(arr[1].trim())) { zhengzhi.add(arr[0]); } } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } } }
试试其它关键字
敏感词汇
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
大萝卜
贡献的其它代码
(
5
)
.
HTML 特殊字符的过滤器
.
对敏感词汇的过滤
.
对特殊字符的处理如 < > 等
.
100到999的水仙花数
.
选择排序与冒泡排序
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3