SpringMVC——拦截器,过滤器实现登录拦截
一、拦截器与过滤器的区别 1、过滤器 依赖于 servlet容器 。在实现上 基于函数回调 ,可以对几乎所有请求 进行过滤 ,但是缺点是一个过滤器实例 只能在容器初始化时调用一次 。使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据,比如: 在过滤器中修改字符编码;在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字、危险字符等 。 2、拦截器 依赖于 web框架 ,在SpringMVC中就是依赖于SpringMVC框架。在实现上基于j ava的反射机制 ,属于 面向切面编程(AOP) 的一种运用。由于拦截器是基于web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作, 同时一个拦截器实例在一个controller生命周期之内可以多次调用 。但是缺点是能对controller请求进行拦截,可以拦截静态资源,但是 拦截不了jsp页面 二、登陆拦截的实现思路 思路: 即将请求的url地址进行解析,除了登录外的请求都要进行拦截或者过滤,这些请求在通过登录的判断,来决定最后的结果 2.1拦截器实现登陆拦截 2.1.1创建拦截器 public class LoginInterceptor implements HandlerInterceptor { @Override public