`
bugyun
  • 浏览: 559009 次
社区版块
存档分类
最新评论

WebMvcConfigurerAdapter拦截器执行顺序(转)

 
阅读更多

 

转自:http://blog.csdn.net/u010509052/article/details/51120580

 

1.springMVC中拦截器实现这个接口implements HandlerInterceptor

第一个拦截器

public class MyInterceptor1 implements HandlerInterceptor{  
  
 public void afterCompletion(HttpServletRequest arg0,  
   HttpServletResponse arg1, Object arg2, Exception arg3)  
   throws Exception {  
  System.out.println("=======> my interceptor1 :afterCompletion() ");  
 }  
  
 public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,  
   Object arg2, ModelAndView arg3) throws Exception {  
  // TODO Auto-generated method stub  
  System.out.println("=======> my interceptor1:postHandle() ");  
 }  
  
 public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,  
   Object arg2) throws Exception {  
  System.out.println("=======> my interceptor1:preHandle() ");  
  return true;  
 }  
  
}  

 

第二个拦截器

public class MyInterceptor2 implements HandlerInterceptor{  
  
    public void afterCompletion(HttpServletRequest arg0,  
            HttpServletResponse arg1, Object arg2, Exception arg3)  
            throws Exception {  
        System.out.println("=======> my interceptor2:afterCompletion() ");  
    }  
  
    public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,  
            Object arg2, ModelAndView arg3) throws Exception {  
        // TODO Auto-generated method stub  
        System.out.println("=======> my interceptor2:postHandle() ");  
    }  
  
    public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1,  
            Object arg2) throws Exception {  
        System.out.println("=======> my interceptor2:preHandle()");  
        return true;  
    }  

 

 

2.在springmvc的配置文件中

<mvc:interceptors>  
            <mvc:interceptor>  
                <mvc:mapping path="/**"/>  
                <bean class="com.lifeng.interceptor.MyInterceptor1" />  
            </mvc:interceptor>  
              
            <mvc:interceptor>  
                <mvc:mapping path="/**"/>  
                <bean class="com.lifeng.interceptor.MyInterceptor2" />  
            </mvc:interceptor>  
              
 </mvc:interceptors>  

 

 

3.执行顺序:

=======> my interceptor1:preHandle() 
 =======> my interceptor2:preHandle()
 .......
 =======> my interceptor2:postHandle() 
 =======> my interceptor1:postHandle() 
 =======> my interceptor2:afterCompletion() 
 =======> my interceptor1 :afterCompletion()



分享到:
评论

相关推荐

    拦截器的使用示例Interceptor

    配置完成后,拦截器会按照添加的顺序依次执行。 5. **拦截器链**: 拦截器可以形成一个链式结构,当一个请求到达时,会按照注册的顺序依次调用每个拦截器的`preHandle()`方法。只有当所有`preHandle()`方法都返回`...

    SpringBoot拦截器的使用介绍.docx

    ### 拦截器执行流程 - **单个拦截器**:当请求到达时,先执行`preHandle()`,然后是控制器方法,最后是`postHandle()`和`afterCompletion()`。 - **多个拦截器**:按声明顺序执行,`preHandle()`阶段会按照拦截器...

    SpringMvc 拦截器

    现在,当请求匹配到MyInterceptor配置的URL时,拦截器的`preHandle`、`postHandle`和`afterCompletion`方法就会按顺序执行。 在实际应用中,拦截器可以结合Spring Security进行权限控制,例如检查用户是否已登录,...

    SSM笔记-SpringMVC的自定义拦截器

    - 拦截器的执行顺序与它们在`addInterceptor`方法中的添加顺序有关,先添加的先执行。 - 谨慎处理`preHandle`方法的返回值,这将决定请求是否继续被处理。 - 对于异常处理,`afterCompletion`方法只在`preHandle`...

    22. Spring Boot 拦截器HandlerInterceptor【从零开始学Spring Boot】

    在实际项目中,我们可以根据需要添加多个拦截器,并调整它们的执行顺序。通过`registry.addInterceptor().order(int order)`方法,可以设置拦截器的优先级,数字越小,优先级越高。 总结来说,Spring Boot的拦截器...

    SpringMVC - 拦截器

    5. **多层拦截器的执行顺序** - 当有多个拦截器时,SpringMVC 会按照它们在注册列表中的顺序依次执行。`preHandle()` 方法按照注册顺序从前向后执行,`postHandle()` 和 `afterCompletion()` 则按照后向前的顺序...

    HelloSpringMVC.zip(拦截器)

    在Spring MVC框架中,拦截器(Interceptor)是一个重要的组件,它允许我们在请求处理之前和之后执行自定义逻辑。本示例“HelloSpringMVC.zip”提供了关于如何在Spring MVC项目中实现拦截器的一个简单演示,其中包含...

    基于springMVC的session拦截器

    - 拦截器的顺序很重要,因为它们会按照声明的顺序执行。如果有多个拦截器,先声明的先执行。 - 为了提高性能,不要在拦截器中执行耗时的操作,如数据库查询。只做必要的检查和设置。 - 如果需要共享拦截器逻辑,...

    spring boot的拦截器简单使用示例代码

    在Spring Boot应用程序中,可以使用@Order注解指定拦截器的执行顺序。例如: ```java @Order(1) public class IndexInterceptor implements HandlerInterceptor{ // ... } ``` 这将使得IndexInterceptor拦截器在...

    SpringBoot拦截器的使用小结

    现在,每当有匹配的请求到来时,拦截器的三个方法将会按照顺序被调用,允许你在处理请求的生命周期中插入自定义逻辑。 拦截器在Spring Boot中的应用非常广泛,不仅可以用于权限验证,还可以用于实现跨域处理、统一...

    聊一聊过滤器与拦截器.doc

       Interceptor 基本介绍 拦截器 Interceptor 是 Spring MVC 提供的一种 AOP(面向切面编程)思想的实现,它允许我们在请求被 Controller 处理之前或之后执行自定义逻辑。与 Filter 不同,Interceptor 更专注于 ...

    spring mvc_09

    - 拦截器可以组成一个链,每个拦截器按照注册的顺序依次执行。如果在preHandle中返回false,后面的拦截器将不会被执行。 7. **应用场景** - 权限控制:检查用户是否登录,是否有操作权限。 - 日志记录:记录请求...

    string boot 与 自定义interceptor的实例讲解

    为了验证拦截器的执行顺序,我们可以通过Thymeleaf模板引擎在前端页面中获取后台传递的属性,并在访问时观察控制台输出的信息。当请求被触发时,每个拦截器的方法都会按顺序打印对应的信息。 在实际应用中,自定义...

    filter过滤器的简单使用.rar

    2. **过滤链**:多个Filter可以组成一个过滤链,它们按照在web.xml或Spring Boot的配置文件中的顺序依次执行doFilter()方法。 3. **请求处理**:当请求到达时,Filter会按顺序调用doFilter(),传递ServletRequest和...

Global site tag (gtag.js) - Google Analytics