没有合适的资源?快使用搜索试试~ 我知道了~
首页详谈springboot过滤器和拦截器的实现及区别
详谈springboot过滤器和拦截器的实现及区别
5.2k 浏览量
更新于2023-03-03
评论
收藏 65KB PDF 举报
今天小编就为大家分享一篇详谈springboot过滤器和拦截器的实现及区别,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
资源详情
资源评论
资源推荐

详谈详谈springboot过滤器和拦截器的实现及区别过滤器和拦截器的实现及区别
今天小编就为大家分享一篇详谈springboot过滤器和拦截器的实现及区别,具有很好的参考价值,希望对大家有所帮助。一
起跟随小编过来看看吧
前言前言
springmvc中有两种很普遍的AOP实现:
1.过滤器(过滤器(Filter))
2.拦截器(拦截器(Interceptor))
本篇面对的是一些刚接触springboot的人群
所以主要讲解filter和interceptor的简单实现和它们之间到底有什么区别
(一些复杂的功能我会之后发出文章,请记得关注)
Filter的简单实现的简单实现
字面意思:过滤器就是过滤的作用,在web开发中过滤一些我们指定的url
那么它能帮我们过滤什么呢?
那功能可就多了:
比如过拦截掉我们不需要的接口请求
修改请求(request)和响应(response)内容
完成CORS跨域请求等等
现在我们来实现一个简单的过滤器:
可以新建一个filter包,随着项目的扩大过滤器会越来越多
在这里我新建了一个TestFilter类,实现Filter接口
@Component
@WebFilter(urlPatterns = "/Blogs",filterName = "blosTest")
public class TestFilter implements Filter{}
我们一步步来
1.@Component就是把这个类注入到IOC容器中
2.@WebFilter(urlPatterns = "/Blogs",filterName = "blosTest")说明这是一个web过滤器,它拦截的url为/Blogs,过滤器名字为blogsTest
下面贴出实现接口之后的三个重构方法:下面贴出实现接口之后的三个重构方法:
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request= (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
System.out.printf("过滤器实现");
filterChain.doFilter(request,response);
}
@Override
public void destroy() {
}
初始化(init)和摧毁(destroy)方法一般不会用到,具体使用看下源码便知
doFilter()是过滤器的核心
注意:在实现接口方法之后,我们要转换request和response类型至HttpServlet,否则接下去的操作可能会报错。
如果过滤通过,执行filterChain.doFilter(request,response);
说明这个url已经经过了我们的Filter
可以看到,只需要一个类我们就实现了一个简单的过滤器
当然可以不用注解的方式,配置启动类当然可以不用注解的方式,配置启动类















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0