SpringMVC初写(五)拦截器

在系统开发过程中,拦截器的使用可以使我们实现一些需求。如:登录认证,权限管理等,拦截器的工作核心就是将一些工作流程进行统一处理

拦截器和过滤器的区别:

过滤器过滤的是请求路径,拦截器拦截的各层方法的映射路径;由于过滤器在SpringMVC组件加载之前就开始工作,将会导致SpringMVC的一些功能组件无法使用,而拦截器是SpringMVC的功能之一,可以使用SpringMVC里面的一些组件

配置流程:
  1.前台发送一个请求

  

  2.新建一个MyInterceptor类实现HandlerInterceptor接口,并分别实现三个方法

    preHandler()表示方法执行前执行的方法,也是方法执行的开关,如果返回为false则方法不执行

public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
        System.out.println("方法执行前");
        return true;
    }

    afterCompletion()表示方法执行完成后,不管是否报异常均会执行

    public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
            throws Exception {
        System.out.println("方法执行完成后");
    }

    postHandle()表示方法正常执行后执行的方法,报异常则不执行

扫描二维码关注公众号,回复: 6015241 查看本文章
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
            throws Exception {
        System.out.println("方法执行不出异常");
    }

  3.在配置文件xml中对拦截器进行配置

<!-- 配置一个拦截器 -->
    <mvc:interceptors>
        <!-- 配置指定的拦截器 -->
        <mvc:interceptor>
            <!-- 过滤规则 -->
            <mvc:mapping path="/**"/>
            <mvc:exclude-mapping path="/say*"/>
            <bean class="cn.lch.intercept.MyIntercept"></bean>
        </mvc:interceptor>
    </mvc:interceptors>

猜你喜欢

转载自www.cnblogs.com/lch-Hao/p/10770411.html