0
点赞
收藏
分享

微信扫一扫

SpringBoot整合Filter、Listener

_刘彦辉 2022-02-18 阅读 82

目录

Filter过滤器

方式一:

方式二: @Bean

Listener监听器

方式一

方式二


Filter过滤器

方式一:

直接在过滤器中添加@WebFilter注解
在启动器中添加@ServletCompoenentScan

@WebFilter(urlPatterns = "/test2")
public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("---init---");
    }

    @Override
    public void destroy() {
        System.out.println("---destory---");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("---过滤器执行前---");
        filterChain.doFilter(servletRequest,servletResponse);
        System.out.println("---过滤器执行后---");
    }
}
@SpringBootApplication
//在SpringBoot启动的时候会扫描@WebServlet注解 以及@WebFilter
@ServletComponentScan
public class SpringbootServletApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootServletApplication.class, args);
    }

    @Bean
    public ServletRegistrationBean servletRegistrationBean() {
        //将要添加的Servlet封装为一个ServletRegistrationBean对象
        ServletRegistrationBean registrationBean = new ServletRegistrationBean(new ServletDemo());
        //设置URL映射信息
        registrationBean.addUrlMappings("/test2");
        return registrationBean;
    }

}

方式二: @Bean

public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("---init---");
    }

    @Override
    public void destroy() {
        System.out.println("---destory---");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("---过滤器执行前---");
        filterChain.doFilter(servletRequest,servletResponse);
        System.out.println("---过滤器执行后---");
    }
}

启动类加入@Bean

@SpringBootApplication
public class SpringbootServletApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootServletApplication.class, args);
    }

    @Bean
    public ServletRegistrationBean servletRegistrationBean() {
        //将要添加的Servlet封装为一个ServletRegistrationBean对象
        ServletRegistrationBean registrationBean = new ServletRegistrationBean(new ServletDemo());
        //设置URL映射信息
        registrationBean.addUrlMappings("/test2");
        return registrationBean;
    }

    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
        FilterRegistrationBean registrationBean = new FilterRegistrationBean(new MyFilter());
        registrationBean.addUrlPatterns("/test2");
        return registrationBean;
    }

}

Listener监听器

方式一

  1. 创建自定义的Listener
  2. 添加扫描注解
  3. 启动测试
@WebListener
public class Mylistener implements ServletContextListener{
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("--listener--init---");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("--listener--destory");
    }
}

启动类加@ServletComponentScan

方式二

public class Mylistener implements ServletContextListener{
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("--listener--init---");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("--listener--destory");
    }
}
@SpringBootApplication
public class SpringbootServletApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootServletApplication.class, args);
    }


    @Bean
    public ServletListenerRegistrationBean servletListenerRegistrationBean() {
        ServletListenerRegistrationBean registrationBean = new ServletListenerRegistrationBean(new Mylistener());
        return registrationBean;
    }

}
举报

相关推荐

0 条评论