您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

网上发不出去的那些敏感词,是如何被屏蔽掉的? 2022-10-02 11:25:45 来源: 互联网行业速递 广东 举报 0 分享至 今天是刘小爱自学Java的第94天。 感谢你的观看,谢谢你。

时间:2020-07-17 19:39:24  来源:今日头条  作者:第三方激刻

今天是刘小爱自学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:敏感词   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
DFA算法,Java实现敏感词过滤
DFA,全称 Deterministic Finite Automaton, 即确定有穷自动机。黑马头条项目的敏感词过滤工具类,基于DFA算法思想。package com.heima.utils.common;import java.util.*;public...【详细内容】
2023-06-19  Search: 敏感词  点击:(230)  评论:(0)  加入收藏
微信QQ“敏感词”有哪些?“替换词”整理
今天我们整理了常用敏感词的替换词。微信、QQ里面发“敏感词”会直接影响帐号质量,严重会导致封号。一定要有意识地规避这些词。 1、“最”系列可替换词 避免:最佳、最优、...【详细内容】
2022-09-15  Search: 敏感词  点击:(2846)  评论:(0)  加入收藏
微信“敏感词”有哪些?(最全汇总)
大家都知道微信、QQ里面发“敏感词”轻则会将降低权重的,严重会导致封号。但是微信一直没有公布哪些是违规词语,只用了一些模糊的表述!很多人不知道的情况下就违规了。敏感词就...【详细内容】
2022-08-17  Search: 敏感词  点击:(11655)  评论:(0)  加入收藏
企业微信怎么实现员工聊天敏感词提醒?
为了企业更好地管理员工,避免员工私下与客户交易,进行一些违规操作,企业可以使用芝麻微客(企业微信官方服务商)的敏感词提醒功能。应用场景为了避免企业员工出现一些违规行为,如...【详细内容】
2022-06-29  Search: 敏感词  点击:(471)  评论:(0)  加入收藏
C#开源之敏感词检测过滤组件
描述一款高性能敏感词(非法词/脏字)检测过滤组件,附带繁体简体互换,支持全角半角互换,汉字转拼音,模糊搜索等功能。同时支持多种语言,C#、golang、java、javascript、python参数...【详细内容】
2022-06-14  Search: 敏感词  点击:(615)  评论:(0)  加入收藏
网站信息安全检测、敏感词过滤设计方案
功能目标针对客户(业务员、用户)输入的信息、上传的文件(后期),实现自动审核过滤,以达成尽可能少的人工参与!通过程序中对文本对象进行检测,有效降低内容违规风险。但是不能彻底解决...【详细内容】
2022-01-21  Search: 敏感词  点击:(817)  评论:(0)  加入收藏
jQuery实例之留言版+敏感词汇过滤
题目:实现论坛网站中常见的留言板功能,可以过滤敏感词汇,如图所示: 实现思路如下:在网页中写入一个空列表 ul, 监听 发布 按钮的点击事件,动态向 ul 中添加列表项。具体实现步骤:基...【详细内容】
2021-12-07  Search: 敏感词  点击:(1032)  评论:(0)  加入收藏
如何用Java实现屏蔽敏感词功能
需求背景大家有没有做过屏蔽敏感词的需求呢,这个需求一般来说很常见了。比如,系统中有一段话:我爱吃肯德基要求【肯德基】三个词被屏蔽掉,屏蔽后的语句显示为:我爱吃***常规的做...【详细内容】
2021-04-01  Search: 敏感词  点击:(1540)  评论:(0)  加入收藏
网上发不出去的那些敏感词,是如何被屏蔽掉的? 2022-10-02 11:25:45 来源: 互联网行业速递 广东  举报 0 分享至 今天是刘小爱自学Java的第94天。  感谢你的观看,谢谢你。
今天是刘小爱自学Java的第94天。感谢你的观看,谢谢你。话不多说,开始今天的学习:一、用户评论功能网络上很多平台都会有敏感词屏蔽,有些词语打出来会被和谐掉。虽说现在主张言论...【详细内容】
2020-07-17  Search: 敏感词  点击:(364)  评论:(0)  加入收藏
网上发不出去的那些敏感词,是如何被屏蔽掉的?
今天是刘小爱自学Java的第94天。感谢你的观看,谢谢你。话不多说,开始今天的学习: 一、用户评论功能网络上很多平台都会有敏感词屏蔽,有些词语打出来会被和谐掉。虽说现在主张言...【详细内容】
2020-07-17  Search: 敏感词  点击:(1251)  评论:(0)  加入收藏
▌简易百科推荐
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(2)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(7)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
站内最新
站内热门
站内头条