拦截器:
- 拦截器是springmvc中的一种,需要实现HandlerInterceptor接口。
- 拦截器和过滤器类似,功能方向侧重点不同。 过滤器是用来过滤器请求参数,设置编码字符集等工作。
拦截器是拦截用户的请求,做请求做判断处理的。 - 拦截器是全局的,可以对多个Controller做拦截。
一个项目中可以有0个或多个拦截器, 他们在一起拦截用户的请求。
拦截器常用在:用户登录处理,权限检查, 记录日志。
拦截器的使用步骤:
- 定义类实现HandlerInterceptor接口
- 在springmvc配置文件中,声明拦截器, 让框架知道拦截器的存在。
拦截器的执行时间:
- 在请求处理之前, 也就是controller类中的方法执行之前先被拦截。
- 在控制器方法执行之后也会执行拦截器。
- 在请求处理完成后也会执行拦截器。
拦截器:看做是多个Controller中公用的功能,集中到拦截器统一处理。使用的aop的思想
拦截器和过滤器的区别
- 过滤器是servlet中的对象, 拦截器是框架中的对象
- 过滤器实现Filter接口的对象, 拦截器是实现HandlerInterceptor
- 过滤器是用来设置request,response的参数,属性的,侧重对数据过滤的。
拦截器是用来验证请求的,能截断请求。 - 过滤器是在拦截器之前先执行的。
- 过滤器是tomcat服务器创建的对象
拦截器是springmvc容器中创建的对象 - 过滤器是一个执行时间点。
拦截器有三个执行时间点 - 过滤器可以处理jsp,js,html等等
拦截器是侧重拦截对Controller的对象。 如果你的请求不能被DispatcherServlet接收, 这个请求不会执行拦截器内容 - 拦截器拦截普通类方法执行,过滤器过滤servlet请求响应