现在在网上发一些什么文字
若是涉及到一些粗鄙之语就会被屏蔽掉
要么警告、那么禁言甚至是封禁账号
那它是怎么实现的呢?
使用昨天学的过滤器就可以实现
我写了一个屏蔽敏感词的案例
大致地说一下其实现思路:
有一个form表单文本域加上按钮
要对文本域中用户输入的数据校验
创建一个过滤器
路径对应就是form表单的提交路径
其主要有init()方法和doFilter()方法
在init方法中需要获取敏感词有哪些
敏感词不少,按照分类分成很多文件
每行前面是敏感词,后面是级别,用|隔开
再将这些文件放入一个文件夹中
在init方法中根据路径获取该文件夹
遍历获取里面的各个文件
使用IO流中的缓冲流一行一行地读取文件
其中要是用split方法将每一行的内容切割开
以|为界,0索引位位敏感词,1索引位为级别
根据不同的级别存入不同的敏感词集合中
在doFilter中获取用户输入的数据
遍历init方法中获取的三类敏感词集合
将用户输入的数据和其正则匹配
若是匹配一样,就警示用户
当然可以根据级别做不同的处理
我这边就只是模拟了警示用户的情况
方法是在request域对象中存入警示信息
在前端页面中使用El表达式获取域对象的消息
以上就是对实现思路的说明,果然:
这代码写出了和将思路说出来还真是两码事
-
总觉得自己讲的不清楚
又想说的面面俱到但是又觉得太啰嗦
说不定还有些说错了,只能说还得多练吧