方式一 :通過注解方式實(shí)現(xiàn)
項(xiàng)目名稱:032-springboot-filter-01
1.通過注解方式創(chuàng)建一個(gè)Filer
在com.abc.springboot.filter包下創(chuàng)建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("您已進(jìn)入filter過濾器,您的請(qǐng)求正常,請(qǐng)繼續(xù)遵循規(guī)則....");
filterChain.doFilter(servletRequest,servletResponse);
}
}
2.在主應(yīng)用程序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.啟動(dòng)應(yīng)用SpringBoot,瀏覽器訪問測試
因?yàn)檫^濾所有請(qǐng)求,所以隨便輸入一個(gè)地址,控制臺(tái)都會(huì)輸出
項(xiàng)目名稱:033-springboot-filter-02
1.創(chuàng)建一個(gè)普通的Filter
在com.abc.springboot.filter包下,創(chuàng)建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已進(jìn)入Filter過濾器,您的請(qǐng)求正常,請(qǐng)繼續(xù)遵循規(guī)則...");
filterChain.doFilter(servletRequest,servletResponse);
}
}
2.編寫一個(gè)Spring Boot的配置類,在該類中注冊(cè)Filter
在com.abc.springboot.config包下創(chuàng)建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 //該注解將此類標(biāo)記為配置類
public class FilterConfig {
@Bean
public FilterRegistrationBean heFilterRegistration() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new HeFilter());
filterRegistrationBean.addUrlPatterns("/*");
return filterRegistrationBean;
}
}
3.啟動(dòng)應(yīng)用SpringBoot,瀏覽器訪問測試
因?yàn)檫^濾所有請(qǐng)求,所以隨便輸入一個(gè)地址,控制臺(tái)都會(huì)輸出