方式一 :通過注解方式實現
項目名稱:032-springboot-filter-01
1.通過注解方式創建一個Filer
在com.abc.springboot.filter包下創建MyFilter
package com.abc.springboot.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
/**
* ClassName:MyFilter
* Package:com.abc.springboot.filter
* Description:
*/
@WebFilter(urlPatterns = "/*")
public class MyFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("您已進入filter過濾器,您的請求正常,請繼續遵循規則....");
filterChain.doFilter(servletRequest,servletResponse);
}
}
2.在主應用程序Application類上添加@ServletComponentScan("basePackages = "com.abc.springboot.filter")
package com.abc.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@ServletComponentScan(basePackages = "com.abc.springboot.filter")
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
3.啟動應用SpringBoot,瀏覽器訪問測試
因為過濾所有請求,所以隨便輸入一個地址,控制臺都會輸出
項目名稱:033-springboot-filter-02
1.創建一個普通的Filter
在com.abc.springboot.filter包下,創建HeFilter類
package com.abc.springboot.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
/**
* ClassName:HeFilter
* Package:com.abc.springboot.filter
* Description:
*/
@WebFilter(urlPatterns = "/*")
public class HeFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("He已進入Filter過濾器,您的請求正常,請繼續遵循規則...");
filterChain.doFilter(servletRequest,servletResponse);
}
}
2.編寫一個Spring Boot的配置類,在該類中注冊Filter
在com.abc.springboot.config包下創建FilterConfig配置類
package com.abc.springboot.config;
import com.abc.springboot.filter.HeFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* ClassName:FilterConfig
* Package:com.abc.springboot.config
* Description:
*/
@Configuration //該注解將此類標記為配置類
public class FilterConfig {
@Bean
public FilterRegistrationBean heFilterRegistration() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new HeFilter());
filterRegistrationBean.addUrlPatterns("/*");
return filterRegistrationBean;
}
}
3.啟動應用SpringBoot,瀏覽器訪問測試
因為過濾所有請求,所以隨便輸入一個地址,控制臺都會輸出