• 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>

    3、具体的用法可以自己研究。

    
    
    
  • 相关阅读:
    单例
    Label自适应高度
    通知中心(以夜间模式为例)
    ios VFL屏幕自适应
    网络请求数据(同步POST,异步POST)
    linux 设备文件
    linux 文件存取 软硬联接的区别
    linux 磁盘管理与文件系统
    linux开机过程
    Build Antlr4 projects with eclipse java project template.
  • 原文地址:https://www.cnblogs.com/ll409546297/p/7422833.html
Copyright © 2020-2023  润新知