感谢你的不雅观察,感激你。

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

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

jsp输入提示去掉网上发不出去的那些敏感词是若何被屏障失落的 PHP

虽然说现在主见辞吐自由,但我大中华自古以来便是礼仪之邦,好多粗俗之语能不准许就不准许的好。

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

利用昨天学的Filter过滤器手艺就能实现。

这便是1个很大略的form表单:

action:提交跳转的路径为wordServlet。

method:提交办法为get提交。

textarea:文本域,属性分别为列数、行数、称呼。

input type=\"大众submit\"大众:提交按钮

那么必定要有1个Servlet要和表单提交的路径对应,从而得到文本域中用户输入的数据。

①处理乱码问题

经由request的setCharcatierEncoding()方法设定字符集为utf-8,处理乱码问题。

②得到用户输入的数据

经由request的getParamter()方法得到用户输入的数据。

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

固然依照实际情形,得到用户数据后,会将用户的批评展现在对应的批评区中。

我这边业务逻辑没有这样繁杂,就干脆用1个输出语句来代替了。

既然是要屏蔽敏感词汇,必定须要先断定哪些词算是敏感词,再以这些词汇当作标准当作屏蔽。

在web包下创建1个word包,专门寄存须要屏蔽的词汇文献,依照分类必定是有好多很文献的。

为了更好地测试,我写了1个豆豆团影视,将其设定为1级,究竟总不或许真的写那些敏感词。

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

起初要得到敏感词汇,在init()方法中实现该需求,由于代码太长欠好截图,故分红了两部分:

1得到words文献夹里的各个文献

①创建三个群集

前面也说了,敏感词有三个品级,就创建三个成员变量来专门寄存得到的词汇。

②得到words文献夹

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

利用它的getServlerContext()可以得到web利用中的servletcontext ,从而利用servletcontext接口的少许方法。

getRealPath()内里填入words包的相对路径,就能得到words这个包了。

③利用文献过滤器过滤文献

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

利用FileFilter接口就能到达过滤文献的效益。

2得到words文献夹里的各个文献里的本色

代码接上图,加强for重复遍历上述过滤后的words文献夹:

①转换流与缓冲流

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

利用缓冲流在于可以1溜1溜地读。

同期也算是对这两种IO流的1个回顾与温习。

②迭代器读取文献

这便是IO流中的重点代码,1溜1溜地读取各个文献里的本色。

③切割字符串

字符串为1溜的本色:因此“|”为分开,前面为敏感词,后背为屏蔽品级。

以是利用split()方法来将其分开成1个数组,数组里0索引位为敏感词,1索引位为屏蔽品级。

④依照屏蔽品级分别存入对应群集

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

split[0]暗示的也便是敏感词本色,将其存入对应群集便可。

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

现在对doFilter()方法里的代码编写,用户得到用户输入的讯息,再进1步剖断是不是合乎哀求。

①处理乱码并得到用户数据

和在wordServlet中编写的代码雷同。

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

敏感词汇1共有三个级别,可以分别对应分别的处理办法,例如永久封号、封号7天,禁言……

现在究竟学习阶段,只遍历品级为1的群集,正则匹配波及到1个用具类Pattern:

compile(str):以遍历的敏感词为标准。

matcher(word):以上述标准匹配得到的用户数据。

经由matcher的find()方法可以剖断,若为true即暗示匹配,不合乎哀求。

③不合乎哀求反应并提示用户

在request域工具中设定1个名为msg的值,值为“批评本色不规范”,再跳转word.jsp页面。

终极在word.jsp中利用EL表达式得到request域工具中的数据。

${msg}得到的也便是③中设定的msg对应的值,如果用户输入的本色不规范,在word.jsp页面就会浮现警示讯息。

做个测试

豆豆团影视在前面已被我设立成了1级敏感词,以是在批评的韶光输入豆豆团影视,过滤器中会换取到。

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

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

感激你的不雅观察。

如果可以的话,贫苦帮助点个赞,感激你。

如果喜好我的文章,请大家多多“关注”我吧,第一韶光获取最新资讯!