自定义拦截器

Spring MVC也可以使用拦截器队请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor 接口

  1. preHandle():这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求request进行处理。如果程序员决定改拦截器对请求进行拦截处理后还要调用其他的拦截器,或者是业务处理器去进行处理,则返回true;如果程序员决定不需要再调用其他的组件去处理请求,则返回false。
  2. postHandle():这个方法在业务处理器处理完请求后,但是DispatcherServlet向客户端响应前被调用,在该方法中对用户请求request进行处理。
  3. afterCompletion():该方法在DispatcherServlet完全处理完请求后被调用。可以在该方法中进行一些资源清理的操作。

拦截器方法执行顺序

image-20200921203340559.png

配置自定义拦截器

  1. <mvc:interceptors>
  2. <!--拦截所有资源-->
  3. <bean class="com.zh.springmvc.interceptors.HelloInterceptor"></bean>
  4. <!--拦截指定资源-->
  5. <mvc:interceptor>
  6. <mvc:mapping path="/emps"/>
  7. <bean class="com.zh.springmvc.interceptors.HelloInterceptors2"></bean>
  8. </mvc:interceptor>
  9. <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"></bean>
  10. </mvc:interceptors>

image-20200921203746131.png
image-20200921203758302.png