您当前的位置:首页 > 电脑百科 > 站长技术 > 网站

网上发不出去的那些敏感词,是如何被屏蔽掉的?

时间:2020-07-17 18:44:46  来源:  作者:

今天是刘小爱自学JAVA的第94天。

感谢你的观看,谢谢你。

话不多说,开始今天的学习:

网上发不出去的那些敏感词,是如何被屏蔽掉的?

 

一、用户评论功能

网络上很多平台都会有敏感词屏蔽,有些词语打出来会被和谐掉。

虽说现在主张言论自由,但我大中华自古以来便是礼仪之邦,很多粗鄙之语能不允许就不允许的好。

那这些词汇是如何屏蔽的呢?

利用昨天学的Filter过滤器技术就能实现。

网上发不出去的那些敏感词,是如何被屏蔽掉的?

 

这就是一个很简单的form表单:

  • action:提交跳转的路径为wordServlet。
  • method:提交方式为get提交。
  • textarea:文本域,属性分别为列数、行数、名称。
  • input type="submit":提交按钮

那么肯定要有一个Servlet要和表单提交的路径对应,从而获取文本域中用户输入的数据。

网上发不出去的那些敏感词,是如何被屏蔽掉的?

 

①处理乱码问题

通过request的setCharcatierEncoding()方法设定字符集为utf-8,解决乱码问题。

②获取用户输入的数据

通过request的getParamter()方法获取用户输入的数据。

文本域对应的name为word,所以这里参数也为word。

当然按照实际情况,获取用户数据后,会将用户的评论展示在对应的评论区中。

我这边业务逻辑没有这么复杂,就直接用一个输出语句来代替了。

二、敏感词汇获取

既然是要屏蔽敏感词汇,肯定需要先确定哪些词算是敏感词,再以这些词汇作为标准作为屏蔽。

网上发不出去的那些敏感词,是如何被屏蔽掉的?

 

在web包下创建一个word包,专门存放需要屏蔽的词汇文件,根据分类肯定是有很多很文件的。

为了更好地测试,我写了一个刘小爱,将其设定为1级,毕竟总不可能真的写那些敏感词。

好,敏感词汇准备好了,就要创建Filter过滤器以及编写如何屏蔽的业务逻辑代码了。

首先要获取敏感词汇,在init()方法中实现该需求,因为代码太长不好截图,故分成了两部分:

1获取words文件夹里的各个文件

网上发不出去的那些敏感词,是如何被屏蔽掉的?

 

①创建三个集合

前面也说了,敏感词有三个等级,就创建三个成员变量来专门存放获取的词汇。

②获取words文件夹

在初始化方法init中,有一个参数FilterConfig。

利用它的getServlerContext()可以获取web应用中的servletcontext ,从而使用servletcontext接口的一些方法。

getRealPath()里面填入words包的相对路径,就能获取words这个包了。

③使用文件过滤器过滤文件

我们刚才将敏感词汇文件放入words这个包中了,里面有很多文件,为了防止被其它文件混入,我们只读取后缀名为“.txt”的文本文件。

使用FileFilter接口就能达到过滤文件的效果。

2获取words文件夹里的各个文件里的内容

代码接上图,增强for循环遍历上述过滤后的words文件夹:

网上发不出去的那些敏感词,是如何被屏蔽掉的?

 

①转换流与缓冲流

使用转换流在于其可以设置编码字符集:utf-8。

使用缓冲流在于可以一行一行地读。

同时也算是对这两种IO流的一个回顾与复习。

②迭代器读取文件

这就是IO流中的核心代码,一行一行地读取各个文件里的内容。

③切割字符串

字符串为一行的内容:是以“|”为分隔,前面为敏感词,后面为屏蔽等级。

所以使用split()方法来将其分隔成一个数组,数组里0索引位为敏感词,1索引位为屏蔽等级。

④根据屏蔽等级分别存入对应集合

split[1]表示的也就是屏蔽等级,trim()方法可以去除空格。

split[0]表示的也就是敏感词内容,将其存入对应集合即可。

三、过滤代码编写

上述是对过滤器中init()方法里的代码编写,用于获取敏感词一共有哪些。

现在对doFilter()方法里的代码编写,用户获取用户输入的信息,再进一步判断是否符合要求。

网上发不出去的那些敏感词,是如何被屏蔽掉的?

 

①处理乱码并获取用户数据

和在wordServlet中编写的代码一样。

②遍历敏感词汇并与用户数据匹配

敏感词汇一共有三个级别,可以分别对应不同的处理方式,比如永久封号、封号7天,禁言……

现在毕竟学习阶段,只遍历等级为1的集合,正则匹配涉及到一个工具类Pattern:

  • compile(str):以遍历的敏感词为标准。
  • matcher(word):以上述标准匹配获取的用户数据。

通过matcher的find()方法可以判断,若为true即表示匹配,不符合要求。

③不符合要求反馈并提醒用户

在request域对象中设定一个名为msg的值,值为“评论内容不规范”,再跳转word.jsp页面。

最后在word.jsp中使用EL表达式获取request域对象中的数据。

${msg}获取的也就是③中设定的msg对应的值,如果用户输入的内容不规范,在word.jsp页面就会出现警示信息。

做个测试

网上发不出去的那些敏感词,是如何被屏蔽掉的?

 

刘小爱在前面已经被我设置成了1级敏感词,所以在评论的时候输入刘小爱,过滤器中会截取到。

从而跳转word.jsp页面并附带警示信息。

嘻嘻嘻不为敏感词汇,则不受影响。

最后

谢谢你的观看。

如果可以的话,麻烦帮忙点个赞,谢谢你。



Tags:敏感词   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
题目:实现论坛网站中常见的留言板功能,可以过滤敏感词汇,如图所示: 实现思路如下:在网页中写入一个空列表 ul, 监听 发布 按钮的点击事件,动态向 ul 中添加列表项。具体实现步骤:基...【详细内容】
2021-12-07  Tags: 敏感词  点击:(31)  评论:(0)  加入收藏
需求背景大家有没有做过屏蔽敏感词的需求呢,这个需求一般来说很常见了。比如,系统中有一段话:我爱吃肯德基要求【肯德基】三个词被屏蔽掉,屏蔽后的语句显示为:我爱吃***常规的做...【详细内容】
2021-04-01  Tags: 敏感词  点击:(520)  评论:(0)  加入收藏
今天是刘小爱自学Java的第94天。感谢你的观看,谢谢你。话不多说,开始今天的学习: 一、用户评论功能网络上很多平台都会有敏感词屏蔽,有些词语打出来会被和谐掉。虽说现在主张言...【详细内容】
2020-07-17  Tags: 敏感词  点击:(217)  评论:(0)  加入收藏
背景介绍直播系统主要是以内容为主,好的内容可以吸引用户来欣赏,也能为公司带来可观的收益,既然有传播的入口,那么必然有负面内容的出现,随着平台用户量不断扩大,内容的监管也是必...【详细内容】
2020-06-02  Tags: 敏感词  点击:(60)  评论:(0)  加入收藏
很多外贸小伙伴吐槽,他们辛辛苦苦找了几千甚至几万的客户资源,结果照着上面的邮箱发了开发信之后,就石沉大海了。如果运气好,还能收到一些回信——系统退信。看到这里...【详细内容】
2019-10-30  Tags: 敏感词  点击:(237)  评论:(0)  加入收藏
PHP实现的敏感词过滤方法,你们有好的编码和好的实现方法吗,可以发出来一起交流一下。以下是一份过滤敏感词的编码。有需要偶读可以参考参考。敏感词的过滤方法/** * @todo 敏...【详细内容】
2019-09-06  Tags: 敏感词  点击:(265)  评论:(0)  加入收藏
▌简易百科推荐
今天我们来聊一下北京地区的《ICP经营许可证》有多好办,现在的互联网上提供的商机越来越多,增值电信业务十分火爆,企业通过互联网突破地域的限制,把公司产品卖到更远的地方,同时...【详细内容】
2021-12-17  梦想理应飞翔Yy    Tags:《ICP经营许可证》   点击:(12)  评论:(0)  加入收藏
转自: https://blog.kermsite.com/p/blog-intro/由于格式问题,部分链接、表格可能会失效,若失效请访问原文此专题将详细介绍如何从零开始搭建一个个人博客。Dec 01, 2021阅读时...【详细内容】
2021-12-17  LaLiLi    Tags:个人博客   点击:(7)  评论:(0)  加入收藏
SP证是第二类增值电信业务经营许可证的简称。分为全网SP证和地网SP证。申请经营许可证是在工信部申请,全网SP经营许可证的有效期是5年,全网SP许可证在工信部办理全网SP续期,地...【详细内容】
2021-11-01  s陳述    Tags:sp证书   点击:(39)  评论:(0)  加入收藏
现在还有许多人不知道EDI许可证是什么东西今天我就来给大家讲解一下.EDI许可证就是一种增值电信业务经营许可证。是针对在线数据处理和交易处理业务需求的专业资格证书。 《...【详细内容】
2021-10-28  soberXx    Tags:edi许可证   点击:(75)  评论:(0)  加入收藏
元素的化学概念,如周期表中的化学元素,一切物质都是由元素构成的。对程序员而言,网站建设制作就是代码构成网站。企业网站设计者也收集了各种各样的元素,但并非所有元素都需要运...【详细内容】
2021-10-26  南宁云尚网络    Tags:企业网站   点击:(40)  评论:(0)  加入收藏
在运营网站的过程中,有一件不可忽略的事情。那就是网站上线之前需要完成 ICP 备案。说到这里,很多朋友就提出疑问了~· 什么是 ICP 备案呢?· ICP 备案需要哪些材...【详细内容】
2021-10-22  启测云    Tags:ICP备案   点击:(46)  评论:(0)  加入收藏
最近有朋友问我,我公司有外资就不能申请ICP许可证了么?外资的定义是什么?其实是可以的,但有一个特定条件必须满足,外资公司是指公司有外资股东,比如香港、加拿大、美国、韩国等等,...【详细内容】
2021-10-21  小白速看Z    Tags:ICP   点击:(51)  评论:(0)  加入收藏
自互联网出现以来,超文本传输协议http协议被广泛用于在Web浏览器和网站服务器之间传递信息,但随着互联网的发展,另一种协议——https出现,并与http一同服务于这个互联...【详细内容】
2021-10-20  我是FEIYA    Tags:https   点击:(44)  评论:(0)  加入收藏
Grafana Loki 是一个日志聚合工具,它是功能齐全的日志堆栈的核心。图片来自 包图网先看看结果有多轻量吧: Loki 是一个为有效保存日志数据而优化的数据存储。日志数据的高效索...【详细内容】
2021-09-14    51CTO  Tags:Loki日志   点击:(97)  评论:(0)  加入收藏
背景最近做微信小程序开发比较多,大家知道线上微信小程序为了安全起见,要求后端通信协议必须是HTTPS,这就要求需要安装证书。为了测试预发布线上环境,特地买了个最便宜的域名,为...【详细内容】
2021-09-14  小李子说程序    Tags:HTTPS证书   点击:(125)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条