最近在学过滤器,将学到的一些 记下,以后可以随时复习
首先类需要继承Filter借口,然后加上@Compent注解,方便spring容器扫描到
代码如下:
@Component
public class TestFilter implements Filter {
@Override
public void destroy() {
log.info("----------------testFilter 准备销毁。。。");
}
@Override
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
throws IOException, ServletException {
//强转
HttpServletRequest request=(HttpServletRequest) arg0;
HttpServletResponse response=(HttpServletResponse) arg1;
//设置编码格式
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("utf-8");
System.out.println("-----------------------testFilter 过滤中");
arg2.doFilter(request, response);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
log.info("------------------------testFilter 创建。。。。。。。");
}
}
然后将自己写的过滤器注入FilterRegistrationBean中,并设置过滤请求的路径
@Autowired
TestFilter testFilter;
@Bean
public FilterRegistrationBean filterRegistrationBean(){
FilterRegistrationBean registrationBean=new FilterRegistrationBean();
//将写好的Filter加入FilterRegistrationBean中
registrationBean.setFilter(testFilter);
List<String> urlpattern=new ArrayList<String>();
//过滤的请求地址
urlpattern.add("/*");
registrationBean.setUrlPatterns(urlpattern);
//排序
registrationBean.setOrder(1);
return registrationBean;
}
在spring-boot启动的时候控制台:
输入请求路径: