springboot中filter的用法

1、在spring的應用中咱們存在兩種過濾的用法,一種是攔截器、另一種固然是過濾器。咱們這裏介紹過濾器在springboot的用法,在springmvc中的用法基本上同樣,只是配置上面有點區別。web

2、filter功能,它使用戶能夠改變一個 request和修改一個response. Filter 不是一個servlet,它不能產生一個response,它可以在一個request到達servlet以前預處理request,也能夠在離開 servlet時處理response.換種說法,filter實際上是一個」servlet chaining」(servlet 鏈).spring

一個Filter包括:
1)、在servlet被調用以前截獲;
2)、在servlet被調用以前檢查servlet request;
3)、根據須要修改request頭和request數據;
4)、根據須要修改response頭和response數據;
5)、在servlet被調用以後截獲.springboot

3、應用mvc

複製代碼

@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() {

    }
}

複製代碼

4、解釋:app

一、@Component 這個註解的目的是將LoginFilter交給容器來處理。也就是讓LoginFilter起做用ide

二、@ServletComponentScan 這個使用來掃描@WebFilter 的讓@WebFilter起做用。固然對於servlet線管註解也是能夠的。這個@ServletComponentScan最好卸載Apllication這個上面,通用配置。我這裏由於只有一個Filter因此沒有寫在Application上面。url

三、@WebFilter 這個用處顯而易見,針對於什麼連接作過濾,filter的名稱是爲何。.net

5、簡單介紹一下springmvc中的Filter的用法xml

一、寫的方法仍是同樣的都是繼承Filter,來實現3個方法處理繼承

二、丟入容器:這個須要配置在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>

複製代碼

相關文章
相關標籤/搜索