FilterRegistrationBean 用来注册 Filter 对象
项目结构
1.创建 Filter 对象
package com.it.web;
import javax.servlet.*;
import java.io.IOException;
//自定义过滤器
public class MyFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
System.out.println("执行了MyFilter,doFilter");
filterChain.doFilter(servletRequest,servletResponse);
}
}
2.注册 Filter
package com.it.config;
import com.it.web.MyFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class WebApplicationConfig {
@Bean
public FilterRegistrationBean filterRegistrationBean(){
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new MyFilter());
bean.addUrlPatterns("/user/*");
return bean;
}
}
3.创建 Controller
package com.it.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class CustomerFilterController {
@RequestMapping("/user/account")
@ResponseBody
public String userAccount(){
return "user/account";
}
@RequestMapping("/query")
@ResponseBody
public String queryAccount(){
return "/query";
}
}
4.启动应用, 在浏览器访问 user/account, /query 查看浏览器运行结果
访问/user/account的地址,可以正常访问,查看控制台,已经正常的进行了输出这句话,说明过滤器发挥了作用,过滤成功了。
清空控制台访问/query地址,控制台没有输出,说明该地址没有进行过滤,不在过滤器的地址范围内。