`
lanhuidong
  • 浏览: 227735 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring MVC的拦截器

阅读更多

1.定义自己的spring mvc拦截器需要实现HandlerInterceptor 接口或者继承HandlerInterceptorAdapter

2.boolean preHandle()方法在controller被调用之前调用;

3.void postHandle()方法在controller被调用之后调用,可在modelandview中加入数据,比如当前时间;

4.void afterCompletion()在呈现视图之后调用,可用于清理资源等;

5.当设置多个拦截器时,先按顺序调用preHandle方法,然后逆序调用每个拦截器的postHandle和afterCompletion方法


6.拦截器代码

public class MyInterceptor1 extends HandlerInterceptorAdapter {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("-------preHandle1-------");
        return true;//如果返回false,则不再调用之后的方法
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("-------postHandle1-------");
        if(modelAndView != null){  //加入当前时间
            modelAndView.addObject("now", new Date());
        }
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("-------afterCompletion1-------");
    }
    

}
public class MyInterceptor2 extends HandlerInterceptorAdapter {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("-------preHandle2-------");
        return true;//如果返回false,则不再调用之后的方法
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("-------postHandle2-------");
        if(modelAndView != null){  //加入当前时间
            modelAndView.addObject("now", new Date());
        }
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("-------afterCompletion2-------");
    }
    

}

 7.配置

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

8.输出

-------preHandle1-------
-------preHandle2-------
-------controller-------
-------postHandle2-------
-------postHandle1-------
-------afterCompletion2-------
-------afterCompletion1-------

 

 

 

 

  • 大小: 14 KB
分享到:
评论
1 楼 daydayupzzc 2016-12-27  
好,不错,清楚

相关推荐

    Spring MVC 拦截器

    ### Spring MVC 拦截器:深入理解与实践 #### 一、概念解析 Spring MVC 框架中的拦截器(Interceptor)是一种重要的组件,它主要用于处理请求与响应的生命周期,提供了一种灵活的方式来实现诸如权限检查、日志记录...

    spring mvc拦截器过滤json中的null值

    本教程将详细介绍如何使用Spring MVC的拦截器来实现这一功能。 首先,了解拦截器(Interceptor)在Spring MVC中的角色。拦截器是Spring MVC提供的一种AOP(面向切面编程)特性,允许我们在请求处理之前、之后或者在...

    Spring MVC 拦截器入门例子

    Spring MVC 拦截器是基于Java的Web开发框架Spring MVC中的一个重要组件,它允许开发者在请求被控制器处理之前或之后执行自定义逻辑。拦截器主要用于实现通用功能,如权限验证、日志记录、性能监控等,从而提高代码的...

    spring mvc 拦截器获取请求数据信息.rar

    在Spring MVC框架中,拦截器(Interceptor)是一个强大的工具,用于在请求被控制器处理之前或之后执行特定的逻辑。它们可以用来实现权限检查、日志记录、性能统计等多种功能。本压缩包“spring mvc 拦截器获取请求...

    详解Spring MVC拦截器实现session控制

    Spring MVC拦截器是Spring Web框架的一个重要组成部分,它允许开发者在处理请求之前或之后执行自定义的操作,例如权限校验、日志记录等。在本篇文章中,我们详细探讨了如何通过Spring MVC拦截器实现session的控制,...

    spring MVC(新增拦截器demo)

    通过学习这个“spring MVC(新增拦截器demo)”项目,你不仅能够理解Spring MVC拦截器的基本使用,还能掌握如何将拦截器应用于实际的需求场景。拦截器的灵活运用可以大大提高代码的复用性和维护性,使得Spring MVC应用...

    Spring mvc拦截器实现原理解析

    Spring MVC拦截器实现原理解析 Spring MVC拦截器是Spring MVC框架中的一种机制,可以对处理器进行预处理和后处理。它类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些...

    Spring MVC 拦截器实现代码

    Spring MVC 拦截器是Spring MVC框架提供的一种机制,用于在请求被控制器处理之前或之后执行特定操作。拦截器可以用来实现通用的功能,如权限验证、日志记录、性能监控等,避免在每个控制器方法中重复这些逻辑。在...

    Spring MVC拦截器_动力节点Java学院整理

    Spring MVC拦截器 Spring MVC的拦截器是属于HandlerMapping级别的,可以有多个HandlerMapping,每个HandlerMapping可以有自己的拦截器。拦截器是实现了org.springframework.web.servlet.HandlerInterceptor接口或...

    Spring MVC 拦截器 interceptor 用法详解

    Spring MVC 拦截器 interceptor 用法详解 Spring MVC 中的拦截器(Interceptor)类似于 Servlet 中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的...

    浅析java中 Spring MVC 拦截器作用及其实现

    这篇文章将深入探讨Spring MVC拦截器的作用、实现方式以及其在实际应用中的使用场景,并对比拦截器与过滤器的区别。 首先,让我们来看看如何实现一个Spring MVC拦截器: 1. **编写拦截器类**:你需要创建一个类并...

    在spring-boot工程中添加spring mvc拦截器

    Spring Boot 中添加 Spring MVC 拦截器 在 Spring Boot 工程中添加 Spring MVC 拦截器是实现请求预处理和后处理的一种常见方式。 Spring MVC 的拦截器(Interceptor)不同于 Filter,可以实现请求的预处理和后处理...

    SpringMVCDemo:Spring MVC 框架知识案例

    1.创建第一个 Spring MVC 程序案例 2.Spring MVC @RequestMapping 注解案例 3.Spring MVC 请求参数的获取案例 4.Spring MVC 域对象共享数据案例 ...14.Spring MVC 拦截器案例 15.Spring MVC 异常处理案例

    spring mvc xml配置拦截器

    下面将详细介绍创建和配置Spring MVC拦截器的步骤。 1. **创建自定义拦截器** 首先,我们需要创建一个实现`HandlerInterceptor`接口的类。这个接口包含三个方法: - `preHandle(HttpServletRequest request, ...

    使用Spring MVC拦截器实现日志记录的方法

    在Spring框架中,MVC拦截器是一种用于对Spring MVC中的请求进行拦截处理的组件。它们在请求处理过程中的某些阶段介入,可以实现诸如日志记录、权限检查、请求处理时间统计等操作。实现日志记录是拦截器使用场景之一...

    Spring MVC拦截器的基本使用方法

    Spring MVC拦截器是在Web应用中对请求进行拦截处理的一种方式,类似于Servlet中的过滤器。Spring MVC拦截器主要用于在控制器(Controller)执行前后进行一些处理工作,如日志记录、权限检查、性能监控等。实现拦截器...

    spring mvc

    在 Spring MVC 中使用拦截器需要以下步骤: 1. **定义拦截器类**:实现 `HandlerInterceptor` 接口或继承 `HandlerInterceptorAdapter` 类。 2. **注册拦截器**:在配置文件中注册拦截器,指定需要拦截的 URL 模式。...

Global site tag (gtag.js) - Google Analytics