• springboot中filter的用法


    一、在spring的应用中我们存在两种过滤的用法,一种是拦截器、另外一种当然是过滤器。我们这里介绍过滤器在springboot的用法,在springmvc中的用法基本上一样,只是配置上面有点区别。

    二、filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以在离开 servlet时处理response.换种说法,filter其实是一个”servlet chaining”(servlet 链).

    一个Filter包括:
    1)、在servlet被调用之前截获;
    2)、在servlet被调用之前检查servlet request;
    3)、根据需要修改request头和request数据;
    4)、根据需要修改response头和response数据;
    5)、在servlet被调用之后截获.

    三、应用

    复制代码
    @Component
    @ServletComponentScan
    @WebFilter(urlPatterns = "/login/*",filterName = "loginFilter")
    public class LoginFilter implements Filter{
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
    
        }
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    
        }
    
        @Override
        public void destroy() {
    
        }
    }
    复制代码

    四、解释:

    1、@Component 这个注解的目的是将LoginFilter交给容器来处理。也就是让LoginFilter起作用

    2、@ServletComponentScan 这个使用来扫描@WebFilter 的让@WebFilter起作用。当然对于servlet线管注解也是可以的。这个@ServletComponentScan最好卸载Apllication这个上面,通用配置。我这里因为只有一个Filter所以没有写在Application上面。

    3、@WebFilter 这个用处显而易见,针对于什么链接做过滤,filter的名称是为什么。

    五、简单介绍一下springmvc中的Filter的用法

    1、写的方法还是一样的都是继承Filter,来实现3个方法处理

    2、丢入容器:这个需要配置在web.xml里面

    复制代码
        <filter>
            <filter-name>loginFilter</filter-name>
            <filter-class>com.troy.boot.filter.LoginFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>loginFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    复制代码
  • 相关阅读:
    [题解](组合数/二位前缀和)luogu_P2822组合数问题
    [题解](tarjan割点/点双)luogu_P3225_矿场搭建
    [题解](树形dp/换根)小x游世界树
    [題解](DP)CF713C_Sonya and Problem Wihtout a Legend
    [題解]hdu_6412公共子序列
    [題解](最小生成樹)luogu_P2916安慰奶牛
    [题解](堆)luogu_P1631序列合并
    [题解](最短路)luogu_P5122 Fine Dining
    [题解](次短路)luogu_P2865路障(未)
    [题解](最短路(树))luogu_P5201_short cut
  • 原文地址:https://www.cnblogs.com/cl-rr/p/9632963.html
Copyright © 2020-2023  润新知