• SpringBoot中使用过滤器Filter-方式二


    本篇通过配置类实现在SpringBoot中使用Filter,依旧复用Servlet中的代码。

    一、新建一个fiter类实现Filter接口:

    package cn.com.winson.filter;
    
    import java.io.IOException;
    
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    
    public class MyFilter implements Filter {
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
    
        }
    
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {
            System.out.println("进入filter过滤器,请求正常,放行!");
            chain.doFilter(request, response);
        }
    
        @Override
        public void destroy() {
    
        }
    
    }

    二、配置类中配置过滤器规则:

    package cn.com.winson.config;
    
    import org.springframework.boot.web.servlet.FilterRegistrationBean;
    import org.springframework.boot.web.servlet.ServletRegistrationBean;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import cn.com.winson.filter.MyFilter;
    import cn.com.winson.servlet.MyServlet;
    
    /*SpringBoot没有xml,@Configuration注解可以表示一个spring的xml配置文件*/
    @Configuration
    public class ServletConfig {
    
        /*
         * @Bean注解:相当于Spring中的配置文件中的<bean>标签,下面的方法相当于如下配置:id为方法名,class为返回值 <bean
         * id="myServletRegistrationBean"
         * class="org.springframework.boot.web.servlet.ServletRegistrationBean;">
         * </bean>
         */
        @Bean
        public ServletRegistrationBean myServletRegistrationBean() {
            /* 将Servlet注册为一个bean,设置访问路径 */
            ServletRegistrationBean registrationBean = new ServletRegistrationBean(new MyServlet(), "/myServlet");
            return registrationBean;
        }
    
        @Bean
        public FilterRegistrationBean myFilterRegistrationBean() {
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new MyFilter());
            filterRegistrationBean.addUrlPatterns("/*");
            return filterRegistrationBean;
        }
    
    }

    三、运行程序,访问结果:

    四、控制台打印结果,包含字符串:证明过滤器生效了。

    总结

    一、方式方法同SpringBoot中使用Servlet。 

  • 相关阅读:
    kafka 生产者消费者 api接口
    湖南省第九届大学生计算机程序设计竞赛 Interesting Calculator
    Debugger DataSet 调试时查看DataSet
    DELPHI 常用虚拟键:VK_
    DBGRID控件里可以实现SHIFT复选吗?怎么设置?
    在dbgrid中如何多行选中记录(ctl与shift均可用)
    如何在DBGrid里实现Shift+“选择行”区间多选的功能!
    按着shift键对dbgrid进行多条记录选择的问题(50分)
    Delphi实现DBGrid Shift+鼠标左键单击 多选
    Delphi定位TDataSet数据集最后一条记录
  • 原文地址:https://www.cnblogs.com/elnimo/p/10099469.html
Copyright © 2020-2023  润新知