天天看點

Spring boot 自定義過濾器Filter

在web開發中,我們經常用到過濾器Filter,用來對所有web資源:例如Jsp, Servlet, 靜态圖檔檔案或靜态 html 檔案等進行攔截,進而實作一些特殊的功能。這篇文章,我們簡要示範一下spring boot自定義Filter

一、自定義過濾器

首先,我們自己寫一個過濾器類實作Filter接口

MyFilter.java

package com.example.demo.filter;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

/**
 * Created by yuxl on 2019/1/24.
 * 自定義過濾器,列印出請求的url
 */
public class MyFilter implements Filter {
   @Override
   public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
      HttpServletRequest request = (HttpServletRequest) servletRequest;
      System.out.println(request.getRequestURL());
      filterChain.doFilter(servletRequest,servletResponse);
   }
}
           

二、編寫配置類,裝配過濾器

MyConfiguration.java

package com.example.demo.configruation;

import com.example.demo.filter.MyFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Created by yuxl on 2019/1/24.
 * 配置類 裝配過濾器
 */
@Configuration
public class MyConfiguration {
   @Bean
   public FilterRegistrationBean setFilterRegistration(){
      FilterRegistrationBean registration = new FilterRegistrationBean();
      registration.setFilter(new MyFilter());
      registration.addUrlPatterns("/*");
      registration.addInitParameter("paramName", "paramValue");
      registration.setName("MyFilter");
      registration.setOrder(1);
      return registration;
   }
}
           

三、運作調試

啟動項目,浏覽器輸入通路url,背景攔截器列印出請求url

Spring boot 自定義過濾器Filter

感謝大家百忙之中抽出寶貴的時間閱讀本文,歡迎大家批評指正。微信掃下面二維碼添加公衆号議碼評川,可擷取java web、大資料、人工智能等相關學習資料。

Spring boot 自定義過濾器Filter

繼續閱讀