通過2種方式實現
方式一,通過註解方式實現;
1、編寫一個Servlet3的註解過濾器;
創建一個filter包。
package com.springboot.web.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter(urlPatterns="/*")
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("您已進入filter過濾器,您的請求正常,請繼續遵規則...");
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
2、在main方法的主類上添加註解:
@ServletComponentScan(basePackages={"com.springboot.web.servlet","com.springboot.web.filter"})
運行截圖如下:
方式二,通過Spring boot的配置類實現;
1、編寫一個普通的Filter
package com.springboot.web.filter;
import javax.servlet.*;
import java.io.IOException;
public class HeFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("hi您已進入filter過濾器,您的請求正常,請繼續遵規則...");
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
2、編寫一個Springboot的配置類;
編寫個ServletConfig配置類,注意一定要加@Configuration
package com.springboot.web.config;
import com.springboot.web.filter.HeFilter;
import com.springboot.web.servlet.HeServlet;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/** springboot沒有xml , @Configuration可以表示一個spring的配置文件,比如:applicationContext.xml */
@Configuration //一定要加上這個註解,成爲Springboot的配置類,不然不會生效
public class ServletConfig {
@Bean //這個註解就將這個ServletRegistrationBean變成一個Spring的bean類。
public ServletRegistrationBean heServletRegistrationBean(){
ServletRegistrationBean registration = new ServletRegistrationBean(new HeServlet(), "/heServlet");
return registration;
}
@Bean
public ServletRegistrationBean sheServletRegistrationBean(){
ServletRegistrationBean registration = new ServletRegistrationBean(new HeServlet(), "/sheServlet");
return registration;
}
@Bean
public FilterRegistrationBean heFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean(new HeFilter());
registration.addUrlPatterns("/*");
return registration;
}
}
運行截圖如下: