spring mvc 拦截器

第一种拦截器 implements HandlerInterceptor

标题首先定义一个类

package com.shsxt.springmvc.interceptor;

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

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

/**
 * 拦截器实现
 * 实现HandlerInterceptor接口
 *
 */
public class MyInterceptor implements HandlerInterceptor {
    /**
     * 拦截器实现
     *在目标方法(Handler)执行前 执行
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        System.out.println("MyInterceptor01拦截器 preHandle--->在目标方法(Handler)执行前 执行 ");
/**
 * 如果返回true',则表示执行目标方法
 * 如果返回false 则阻止目标方法执行
 */
        return true;
    }

    /**
     * 在目标方法执行后,视图生成前执行
     * @param request
     * @param response
     * @param handler
     * @param modelAndView
     * @throws Exception
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("MyInterceptor01拦截器 preHandle--->在目标方法(Handler)执行后,试图生成前执行 ");

    }

    /**
     * 在目标方法执行后,视图生成后执行
     * @param request
     * @param response
     * @param handler
     * @param ex
     * @throws Exception
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("MyInterceptor01拦截器 preHandle--->在目标方法(Handler)执行后,试图生成后执行 ");

    }
}

在spring mvc配置文件中添加

<!-- 设置拦截器:方式二 (推荐使用) -->
    <mvc:interceptors>
        <!-- 设置具体的拦截器 -->
        <mvc:interceptor>
            <!-- 设置需要被拦截的资源。可使用通配符。可设置多个。 -->
            <mvc:mapping path="/**"/> <!-- 拦截所有的请求 -->
            <!-- 设置不需要拦截的资源。可使用通配符。可设置多个 -->
            <mvc:exclude-mapping path="/url/*"/> <!-- 表示url路径下的资源不被拦截 -->
            <mvc:exclude-mapping path="/hello"/>
            <!-- 设置拦截器的类路径 -->
            <bean class="com.shsxt.springmvc.interceptor.MyInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>

第二种拦截器

此种方法 可以只生成preHandler 另外两个不生成
在这里插入图片描述

package com.shsxt.springmvc.interceptor;


import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

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

/**
 * 拦截器实现
 *  继承HandlerInterceptorAdapter  适配器
 */
public class MyInterceptor02 extends HandlerInterceptorAdapter {
/**
 * 在目标方法执行前执行
 */

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        System.out.println("MyInterceptor02 preHandle拦截器  ------>在目标方法执行前执行");

        return true;
    }

    /**
     * 在目标方法执行后,视图生成前执行
     * @param request
     * @param response
     * @param handler
     * @param modelAndView
     * @throws Exception
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("MyInterceptor02拦截器 preHandle--->在目标方法(Handler)执行后,试图生成前执行 ");

    }

    /**
     * 在目标方法执行后,视图生成后执行
     * @param request
     * @param response
     * @param handler
     * @param ex
     * @throws Exception
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("MyInterceptor02拦截器 preHandle--->在目标方法(Handler)执行后,试图生成后执行 ");

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值