filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目 标资源访问前后进行逻辑处理。
Filter的作用?
1)公共代码的提取
2)可以对request和response中的方法进行增强(装饰者模式/动态代理)
3)进行权限控制
Filter是servlet规范中的过滤器,可以处理请求,对请求参数,属性进行调整,常常在过滤器中处理字符编码
在框架中使用过滤器步骤
1.自定义过滤器
//自定义过滤器类
public class MyFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("执行MyFilter");
filterChain.doFilter(servletRequest ,servletResponse);
}
}
2.注册Filter
@Configuration
public class WebApplicationConfig {
@Bean
public FilterRegistrationBean registrationBean(){
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new MyFilter());
bean.addUrlPatterns("/user/*");
return bean;
}
}
3.写controller测试
@RestController
public class UserController {
@GetMapping("/user/accunt")
public String getfilter(){
return "user/account";
}
@GetMapping("/query")
public String getFilter(){
return "/aaa";
}
}