1、通过注解扫描完成 Filter组件的注册
<!-- SpringBoot 使用 SpringMVC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
/**
* SpringBoot 整合 Filter 方式一
* <filter>
* <filter-name>MyFilter</filter-name>
* <filter-class>cn.springboot.filter.MyFilter</filter-class>
* </filter>
* <filter-mapping>
* <filter-name>MyFilter</filter-name>
* <url-pattern>/myServlet</url-pattern>
* </filter-mapping>
*/
// @WebFilter(filterName="MyFilter",urlPatterns={"*.do","*.jsp"})
@WebFilter(filterName = "MyFilter", urlPatterns = "/myServlet")
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 {
HttpServletRequest httpReq = (HttpServletRequest) request;
String url = httpReq.getRequestURL().toString();
System.out.println(url);
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
@SpringBootApplication
@ServletComponentScan // 在 springBoot 启动时会扫描@WebServlet/@WebFilter,并将该类实例化
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
http://localhost:8080/myServlet?name=zhangsan
打印:
http://localhost:8080/myServlet
zhangsan
2、通过方法完成 Filter组件的注册
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 {
HttpServletRequest httpReq = (HttpServletRequest) request;
String url = httpReq.getRequestURL().toString();
System.out.println(url);
chain.doFilter(request, response);
}
@Override
public void destroy() {
}
}
@SpringBootApplication
//@ServletComponentScan // 在 springBoot 启动时会扫描@WebServlet/@WebFilter,并将该类实例化
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
/**
* 注册Filter
* @return
*/
@Bean
public FilterRegistrationBean getFilterRegistrationBean() {
FilterRegistrationBean bean = new FilterRegistrationBean(new MyFilter());
bean.addUrlPatterns("/myServlet");
return bean;
}
/**
* 注册Servlet
* @return
*/
@Bean
public ServletRegistrationBean getServletRegistrationBean() {
ServletRegistrationBean bean = new ServletRegistrationBean(new MyServlet());
bean.addUrlMappings("/myServlet");
return bean;
}
}