过滤器 拦截器 监听器
过滤器
实现
实现Filter
类,然后重写它的3个方法:
-
init
方法 : 在容器中创建当前过滤器的时候自动调用这个方法 -
destory
方法 : 在容器中销毁当前过滤器的时候自动调用这个方法 -
doFilter
方法 : 这个方法有3个参数,分别是ServletRequest
,ServletResponse
和FilterChain
.可以在参数中获取HttpServletRequest
和HttpServletResponse
对象进行相应的处理操作.
在springboot项目中使用filter ,自定义MyFilter
类:
import lombok.extern.slf4j.Slf4j;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
@Slf4j
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
log.info("init 方法被调用");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
log.info("doFilter 方法被调用");
HttpServletRequest httpServletRequest = (HttpServletRequest)request;
String s = httpServletRequest.getRequestURL().toString();
log.info