1.通過注解掃描完成Filter組件的注冊
1.1 編寫Filter
package com.demo.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.IOException; /** * springboot整合Filter方式一 * 以往在web.xml里面編寫filter * <filter> * <filter-name>FirstFilter</filter-name> * <filter-class>com.demo.filter.FirstFilter</filter-class> * </filter> * * <filter-mapping> * <filtr-name>FirstFilter</filtr-name> * <url-pattern>/hello</url-pattern> * </filter-mapping> * * filter過濾器 */ //@WebFilter(filterName = "FirstFilter",urlPatterns ={"*.do","*.jsp"}) @WebFilter(filterName = "FirstFilter",urlPatterns = "/first") public class FirstFilter implements Filter { //doFilter一般是對request(請求)執行過濾操作 @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("進入Filter"); // 放行 chain.doFilter(request,response); System.out.println("離開Filter"); } @Override public void destroy() { } @Override public void init(FilterConfig filterConfig) throws ServletException { } }
1.2 編寫啟動類
/** * springBoot整合Filter 方式一 */ @SpringBootApplication @ServletComponentScan public class App { public static void main(String[] args) { SpringApplication.run(App.class,args); } }
1.3 啟動main 在瀏覽器打開http://localhost:8080/forst
2.通過方法完成Filter組件的注冊
2.1編寫Filter
/** * springboot整合servlet方式二 */ public class SecondServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("SecondServlet..........."); } }
2.2 編寫啟動類
/**
* springBoot整合Filter 方式二
*/
@SpringBootApplication
public class App2 {
public static void main(String[] args) {
SpringApplication.run(App2.class,args);
}
/**
* servlet的注冊
* @return
*/
@Bean
public ServletRegistrationBean getServletRegistrationBean(){
ServletRegistrationBean bean=new ServletRegistrationBean(new SecondServlet());
bean.addUrlMappings("/second");
return bean;
}
/**
* Filter注冊方法
* @return
*/
@Bean
public FilterRegistrationBean getFilterRegistrationBean(){
FilterRegistrationBean bean=new FilterRegistrationBean(new SecondFilter());
// bean.addUrlPatterns(new String[]{"*.do",".jsp"});
bean.addUrlPatterns("/second");
return bean;
}
}
以下如上
小結:整合Filter有兩種方式:1.注解:@WebFilter 2.方法:@SpringBootApplication SpringBootAppion.run(,) @Bean ServletRegistrationBean addUrlPattern FileRegisterationBean addUrlPatter