SpringBoot【整合Filter】
【摘要】
本文介绍下SpringBoot中整合Filter
整合Filter
一、整合方式一
1.创建过滤器
创建Filter,并且通过@WebFilter注解配置过滤信息,具体如下:
/**
...
本文介绍下SpringBoot中整合Filter
整合Filter
一、整合方式一
1.创建过滤器
创建Filter,并且通过@WebFilter注解配置过滤信息,具体如下:
/**
* @program: springboot-01-servlet
* @description: SpringBoot整合Filter的第一种方式
* @author: 波波烤鸭
* @create: 2019-05-11 15:37
*/
@WebFilter(urlPatterns = "/first")
public class FirstFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("First过滤器:firstServlet 执行之前");
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("First过滤器:firstServlet 执行之后");
}
@Override
public void destroy() {
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
2.创建启动类
启动类和我们前面整合Servlet的第一种方式是一样的。
@SpringBootApplication
//在 springBoot 启动时会扫描@WebServlet,并将该类实例化
@ServletComponentScan()
public class Springboot01ServletApplication {
public static void main(String[] args) {
SpringApplication.run(Springboot01ServletApplication.class, args);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
3.启动测试
通过启动器启动程序测试如下
过滤器正常拦截了请求~
二、整合方式二
1.创建过滤器
创建新的过滤器,不用配置@WebFilter注解,我们同样在启动类中注册过滤器。
/**
* @program: springboot-01-servlet
* @description: SpringBoot整合Filter的第一种方式
* @author: 波波烤鸭
* @create: 2019-05-11 15:37
*/
@WebFilter(urlPatterns = "/first")
public class FirstFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("First过滤器:firstServlet 执行之前");
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("First过滤器:firstServlet 执行之后");
}
@Override
public void destroy() {
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
2.创建启动类
添加获取FilterRegistrationBean对象的方法,并在该方法中注册Filter及配置拦截的请求的URL
/**
* @program: springboot-01-servlet
* @description: SpringBoot整个Servlet的第二种方式的启动类
* @author: 波波烤鸭
* @create: 2019-05-11 15:04
*/
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
@Bean
public ServletRegistrationBean getServletRegistrationBean(){
// 直接获取ServletRegistrationBean对象 并关联自定义的servlet
ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet());
// 设置servlet对应的 UrlMapping
bean.addUrlMappings("/second");
return bean;
}
/**
* 获取FilterRegistrationBean 对象
* 注册过滤器并设置拦截的请求地址
* @return
*/
@Bean
public FilterRegistrationBean getFilterRegistrationBean(){
FilterRegistrationBean bean = new FilterRegistrationBean(new SecondFilter());
// 配置要拦截的请求
bean.addUrlPatterns("/second");
return bean;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
3.启动测试
通过App启动类启动程序,访问测试如下:
满足拦截请求的请求到来的时候过滤器执行了拦截操作~
文章来源: dpb-bobokaoya-sm.blog.csdn.net,作者:波波烤鸭,版权归原作者所有,如需转载,请联系作者。
原文链接:dpb-bobokaoya-sm.blog.csdn.net/article/details/90110813
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)