Spring Mvc 的拦截器(interceptor)与java Servlet 的过滤器 (Filter)类似,它主要用于拦截用户的请求并做相应的处理。通常应用在权限验证,记录请求信息的日志,判断用户是否登录等功能上。
拦截器过滤器的区别:- 拦截器是基于java的反射机制的,而过滤器是基于函数回调拦截器不依赖于servlet容器,过滤器依赖与servlet容器拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。拦截器可以访问action上下文,值栈里的对象,而过滤器不能访问在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次拦截器可以获取IOC容器中的各个bean,而过滤器就不行,拦截器里可以注入一个service,可以调用业务逻辑
在Spring Mvc 框架中, 定义一个拦截器,需要对拦截器进行定义和配置。定义一个拦截器
可以通过两种方式:一种是通过实现Handlerlnterceptor接口或继承HandlerInterceptor接口的实现类来定义;另一种是通过实现WebRequestInterceptor接口或继承WebRequestInterceptor接口的实现类来定义。
流程: 全局拦截器和单一拦截器的区别:全局拦截器就是所有的请求,而单一的拦截器就是单一的请求,单一选择器可以选择拿那个请求和不拿那个请求



