springboot笔记-整合filter的两种方式

和整合servlet一样,spring项目中,我们需要在web.xml中通过如下方式整合filter。

* *FirstFilter *com.test.filter.FirstFilter * * * *FirstFilter */first *

而在springboot中没有web.xml这个配置文件。
接下来记录springboot整合filter的两种方式。
一、通过注解整合filter(应该是最常用的一种方式)
参考示例代码:
@WebFilter(filterName="FirstFilter", urlPatterns="/first") //urlPatterns是一个数组,可以配置拦截多个。urlPatterns= {"*.do","*.jsp"} public class FirstFilter implements Filter {@Override public void destroy() { // TODO Auto-generated method stub}@Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { System.out.println("通过注解方式进入拦截器.............."); arg2.doFilter(arg0, arg1); System.out.println("拦截器结束.............."); }@Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub}}

??:WebFilter注解中urlPatterns是一个数组,可以配置拦截多个,如下:
urlPatterns= {"*.do","*.jsp"}

运用上一篇中的启动类,如下:
@SpringBootApplication @ServletComponentScan //springboot启动时,扫描servlet并实例化。 public class App1 {public static void main(String[] args) { SpringApplication.run(App1.class, args); }}

启动访问:http://主机ip:端口/first请求。打印如下:
springboot笔记-整合filter的两种方式
文章图片
参考结果 二、通过返回对象为FilterRegistrationBean的方法整合filter
【springboot笔记-整合filter的两种方式】这个就不记录了,想节省时间,感兴趣自己了解。
启动中需要实现的方法,参考如下:
@Bean public FilterRegistrationBean getFilterRegistrationBean() { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new FirstFilter()); //实例化拦截器 //filterRegistrationBean.addUrlPatterns(new String[] {"*.do","*.jsp"}); filterRegistrationBean.addUrlPatterns("/first"); return filterRegistrationBean; }

    推荐阅读