1.过滤器的基本概念和实现
过滤器可以过滤所有的请求,对请求前后进行处理,可以获取并修改请求和响应中的信息,所以可以用来对一些无效的路径进行过滤或者进行URL级别的权限控制,同时可以对请求的信息进行敏感词过滤防止Sql注入。但是无法调用IOC容器的实例。
1.Filter 实现类 + @WebFilter + @ServletComponentScan:正常urlpattern的Filter,不可以设置Order顺序
2.Filter 实现类 + FilterRegistrationBean构造 + @Configuration:正常urlpattern的Filter,并且可以设置Order
1.1 自定义过滤实现Filter接口
实现Filter接口,并重写里面的三个方法,其中有三个默认的方法(init初始方法,doFilter核心过滤方法,destroy销毁方法)。
package com.lxc.common.filter;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 自定义过滤器,Filter是被Servlet管理的,可以获取到Request请求、Response响应。
* 对请求前后进行处理。
* Springboot的过滤器,在web开发中可以过滤指定的url
* 比如过拦截掉我们不需要的接口请求,同时也可以修改request和response内容
* 过滤器的应用场景:
* 1)过滤敏感词汇(防止sql注入)
* 2)设置字符编码
* 3)