springmvc自定义拦截器

1、步骤

1.1、创建自定义拦截器类,实现HandlerInterceptor接口

1.2、在springmvc.xml中配置自定义拦截器

2、具体代码

2.1、自定义拦截器类

package com.ly.mvc.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyInterceptor1 implements HandlerInterceptor {
    /**
     * 前处理方法,在控制器方法执行前执行
     * 返回false不会执行后续拦截器以及控制器
     * 返回true,若还有拦截器会继续执行后续拦截器,若没有拦截器会执行控制器的方法
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("MyInterceptor1------preHandle");
        //request.getRequestDispatcher("/WEB-INF/pages/nologin.jsp").forward(request,response);
        return true;
    }

    /**
     * 后处理方法,在控制器方法执行后,在jsp页面执行前执行
     * 如果控制器方法抛出了异常,此方法不会执行了
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("MyInterceptor1---postHandle");
    }

    /**
     *在jsp页面执行后执行
     *就算控制器方法抛出了异常,此方法也会执行
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("MyInterceptor1---afterCompletion");
    }
}

2.2、在springmvc.xml中配置自定义拦截器

<!--配置自定义拦截器-->
<mvc:interceptors>
    <mvc:interceptor>
        <!--配置拦截的请求url-->
        <mvc:mapping path="/**"/>
        <!--
        配置不拦截的请求url
        <mvc:exclude-mapping path=""/>
        -->
        <!--配置自定义拦截器-->
        <bean class="com.ly.mvc.interceptor.MyInterceptor1"></bean>
    </mvc:interceptor>
</mvc:interceptors>

  

原文地址:https://www.cnblogs.com/liuyang-520/p/12382599.html