gpt4 book ai didi

JavaEE Filter敏感词过滤的方法实例详解

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章JavaEE Filter敏感词过滤的方法实例详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

 我们在聊天的时候的或者留言的时候,有部分词是不允许发表出来。我们可以采用过滤器实现这个功能.

我们只是简单利用过滤器实现这个过滤的功能,有些地方没写的很全 。

前台代码:

?
1
2
3
4
5
6
7
<body>
<form action= "<c:url value='/WordServlet'/>" method= "post" >
姓名:<input type= "text" name= "name" /><br/>
留言内容:<textarea rows= "10" cols= "10" name= "textarea" ></textarea><br/>
<input type= "submit" value= "提交" />
</form>
</body>

Servlet里面的代码:

JavaEE Filter敏感词过滤的方法实例详解

仅仅只是把从前台收的数据读取出来。看里面的敏感词是都过滤.

代码:

?
1
2
3
4
5
6
7
8
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name =request.getParameter( "name" ); //名字
String text=request.getParameter( "textarea" ); //浏览内容
PrintWriter pw =response.getWriter();
pw.println( "name=" +name); //这里直接输出,仅仅只是为了查看能否过滤那些关键字。。
pw.print( "内容" +text);
}

过滤器:

过滤的作用就可以体现了,过滤器的是在客户端访问服务器的之间进行拦截的.

我们知道过滤器能够控制request和response,所以我们能够对这个进行下手.

从客户端请求是request,所以我们只需要在半路将其拦截,修改里面的值就可以实现过滤了。采用了包装的设计模式; 。

过滤器代码:

?
1
2
3
4
5
6
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req=(HttpServletRequest) request;
MyFilter myf = new MyFilter(req);
chain.doFilter(myf, response); //采勇我们加强的类的request,传给后面的servlet使用
}

自己手动写一个myFilter类来修改里面我们需要用到的函数.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class MyFilter extends HttpServletRequestWrapper{
//这是采用包装模式
public MyFilter(HttpServletRequest request) {
super (request);
}
@Override //从写这个方法
public String getParameter(String name) {
String words = super .getParameter(name);
System.out.println(words); //过滤前的文字
List<String> list=WordUtils.getword();
for (String ll:list){
words=words.replace(ll, "*" ); //敏感词汇采用**代替
}
return words;
}

为了方便维护,我们的敏感词汇的获取专门写了一个工具,方便取,当然也方便管理员添加进去.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class WordUtils {
//采用单例模式
private static List<String> list = new ArrayList<String>(); //我们可以从这访问数据库中存的敏感词汇,封装成list返回
static { //手动添加几个
list.add( "坑货" );
list.add( "骂人" );
list.add( "傻逼" );
}
public static List<String> getword(){
return list;
}
public static void addWord(String name){
list.add(name);
}
public static void sava(){
//这里可以list里面的数据存到数据库中,方便维护,当然也可以写增删改查等
}

在这里,只要含有这个词的,全部会变成* 。

效果图,

JavaEE Filter敏感词过滤的方法实例详解

总结:过滤器的强大,可以修改request和response对象一起,你需要调什么函数,我们就可以采用包装设计模式的方式修改这个函数,变成我们想要的效果,这个和代理设计模式有点类似.

以上所述是小编给大家介绍的使用JavaEE filter 过滤敏感词的方法的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我网站的支持! 。

最后此篇关于JavaEE Filter敏感词过滤的方法实例详解的文章就讲到这里了,如果你想了解更多关于JavaEE Filter敏感词过滤的方法实例详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com