SpringMVC拦截器
1.拦截器是springmvc中的一种 需要实现HandlerInterceptor接口
2.拦截器和过滤器类似 功能方向侧重不同 过滤器是用来过滤请求参数设置编码字符集的工作
拦截器是拦截用户的请求 做请求做判断处理的
3.拦截器是全局的 可以对多个Controller做拦截
一个项目中可以有多个或者0个拦截器 他们在一起拦截用户的请求
拦截器常用在:用户登录处理 权限检查 记录日志
使用步骤:
1.定义类实现HandlerInterceptor接口
2.在springmvc配置文件中 声明拦截器 让框架知道拦截器的存在
拦截器执行的时间:
1.在请求处理之前 也就是controller类中的方法执行之前被拦截
2.在控制器方法执行之后也会拦截
3.在请求处理完成后也会执行拦截器
当你设置多个连接器时候 他会按照你在springmvc中设置注册的顺序有关
最前面的先执行
多个拦截器的作用主要就是 一个拦截器拦截一个类型的错误
比如 第一个拦截器拦截请求路径是否非法 第二个拦截器看看访问权限够不够等等
拦截器和过滤器区别
1.过滤器是servlet中的对象 拦截器是框架中的对象
2.过滤器实现filter接口对象 拦截器是实现HandlerInterceptor
3.过滤器是用来设置request response的参数 属性的 侧重对数据的过滤
拦截器是用来验证请求的 能截断请求
4.过滤器是在拦截器之前先执行的
5.过滤器是Tomcat服务器创建的对象
拦截器是springmvc容器中创建的对象
6.过滤器是一个执行时间点
拦截器是三个执行时间点
7.过来不起可以处理jsp js HTML 等等
拦截器侧重拦截对controller的对象 如果你的请求不能被DispatcherServlet接收
那么这个请求不会执行拦截器对象