思考一个问题,服务端对于客户端的请求,真的应该照单全收吗?不是的。比如拿我们之前实现的用户注册功能来看,如果用户的昵称带了一些不友好的字母或汉字,你是给他过滤掉呢还是让他注册呢?毫无疑问,我们需要过滤掉一些不友好的请求。
一、过滤器Filter
Filter,过滤器,是在客户端和服务端之间用来过滤一些请求的中间件。它的作用通常包括以下几个方面:
1、Session校验
2、用户权限判断
3、敏感词过滤
4、设置编码等
过滤器可以有0-多个,如下图所示:
二、SpringBoot使用Filter
1、创建Filter
创建filter的方法比较简单,实现Filter接口就可以了。通常,我们不需要去修改init和destroy的实现,只需要去重写doFiler的方法就可以:
import javax.servlet.*;
import java.io.IOException;
public class TestFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
Filter.super.init(filterConfig);
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
}
@Override
public void destroy() {
Filter.super.destroy();
}
}