Spring的自定义拦截器
2017-08-29 17:57
225 查看
我们知道Strust2中的工作流程实际上时通过一系列的拦截器来实现功能的,同样的,在SpringMVC中也可以定义一系列的拦截器来完成一些功能。
1.自定义拦截器
① 写一个类实现HandleInterceptor接口并重写三个方法,preHnadle/postHandle/afterComletion
② 在springmvc.xml中进行配置一下这个类的<interceptors>的子节点。需要注意的是如不加说明,拦截器可拦截所有请求,但也可以指定只拦截和只不拦截哪些请求。
2.三个方法的作用
preHandle:它会在目标方法执行前进行调用,具体来说就是在堆请求参数进行类型转换、数据校验前进行调用。可做一些权限登录、日志、事务操作。
这个方法有返回值:若不需要再调用后续的目标方法或者后续的拦截器,那么返回false;返回true则会继续调用后续的拦截器和目标方法。
postHandle:这个方法在目标方法执行完后和返回响应前被调用。可做一些可在其中设置request的属性和要转向的视图。
afterComplition:在DispacherServlet处理完请求之后被调用,可以用来释放某些资源。
3.拦截器的执行顺序
① 拦截器之间按照在springmvc.xml中的配置顺序来执行。
② 而实际的拦截器中的三个方法的执行顺序是有规律的:
pre1-->pre2-->handle-->post2-->post1-->aft2-->aft1
即pre方法按照正序,post和aft方法按照反序执行,这是因为DispacherServlet中遍历Interceptor的for循环的方式不一样。
1.自定义拦截器
① 写一个类实现HandleInterceptor接口并重写三个方法,preHnadle/postHandle/afterComletion
② 在springmvc.xml中进行配置一下这个类的<interceptors>的子节点。需要注意的是如不加说明,拦截器可拦截所有请求,但也可以指定只拦截和只不拦截哪些请求。
2.三个方法的作用
preHandle:它会在目标方法执行前进行调用,具体来说就是在堆请求参数进行类型转换、数据校验前进行调用。可做一些权限登录、日志、事务操作。
这个方法有返回值:若不需要再调用后续的目标方法或者后续的拦截器,那么返回false;返回true则会继续调用后续的拦截器和目标方法。
postHandle:这个方法在目标方法执行完后和返回响应前被调用。可做一些可在其中设置request的属性和要转向的视图。
afterComplition:在DispacherServlet处理完请求之后被调用,可以用来释放某些资源。
3.拦截器的执行顺序
① 拦截器之间按照在springmvc.xml中的配置顺序来执行。
② 而实际的拦截器中的三个方法的执行顺序是有规律的:
pre1-->pre2-->handle-->post2-->post1-->aft2-->aft1
即pre方法按照正序,post和aft方法按照反序执行,这是因为DispacherServlet中遍历Interceptor的for循环的方式不一样。
相关文章推荐
- spring自定义注解实现拦截器的实现方法
- spring自定义手机访问页面拦截器
- spring 拦截器 spring自定义注解
- SpringBoot使用自定义注解+拦截器 实现日志记录
- 利用spring的拦截器自定义缓存的实现
- (三)、SpringBoot 自定义 interceptor(拦截器)
- spring 拦截器 spring自定义注解
- 利用spring的拦截器自定义缓存的实现实例代码
- springboot + 拦截器 + 注解 实现自定义权限验证
- 【第四十章】Spring Boot 自定义拦截器
- spring boot框架学习8-【干货】spring boot的web开发(4)-自定义拦截器处理权限
- java WebService CXF Spring 自定义拦截器 附实例源码
- Java CXF WebService框架 集成Spring3 自定义拦截器进行头验证
- spring boot框架学习8-【干货】spring boot的web开发(4)-自定义拦截器处理权限
- spring自定义拦截器
- 用CXF编写基于spring的web service 并添加cxf日志拦截器和自定义拦截器
- spring-boot添加自定义拦截器
- SpringBoot添加自定义拦截器的实现代码
- 【WebService框架-CXF】——CXF+Spring+Struts+自定义拦截器构建WebService客户端
- spring boot框架学习8-【干货】spring boot的web开发(4)-自定义拦截器处理权限