美文网首页
SpringMVC框架中的拦截器

SpringMVC框架中的拦截器

作者: 阿杰_96c5 | 来源:发表于2020-04-07 22:42 被阅读0次

1.拦截器的概述

  1. SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术。
  2. 可以定义拦截器链,连接器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链中的拦截器会按着定义的顺序执行。
  3. 拦截器和过滤器的功能比较类似,有区别
  4. 过滤器是Servlet规范的一部分,任何框架都可以使用过滤器技术。
  5. 拦截器是SpringMVC框架独有的。
  6. 过滤器配置了/*,可以拦截任何资源。
  7. 拦截器只会对控制器中的方法进行拦截。
  8. 拦截器也是AOP思想的一种实现方式
  9. 想要自定义拦截器,需要实现HandlerInterceptor接口。

2.自定义拦截器步骤

2.1 创建类,实现HandlerInterceptor接口,重写需要的方法

/**
 * 自定义拦截器
 */
public class MyInterceptor1 implements HandlerInterceptor {

    /**
     * 预处理,controller方法执行前
     * return true 放行,执行下一个拦截器,如果没有,执行controller中的方法
     * @param request
     * @param response
     * @param handler
     * @return
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("MyInterceptor1 执行了...");

        // request.getRequestDispatcher("/WEB-INF/pages/error.jsp").forward(request,response);
        return true;
    }

    /**
     * 后处理方法,controller 方法执行之后,success.jsp执行之前
     * @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("MyInterceptor1执行...后");
    }

    /**
     * success.jsp执行之后,该方法会执行
     * @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("success.jsp执行之后....");
    }


}

2.2在springmvc.xml中配置拦截器类

<!--配置拦截器-->
<mvc:interceptors>
    <mvc:interceptor>
        <!--要拦截的具体的方法-->
        <mvc:mapping path="/user/*"/>
        <!--不要拦截的方法
        <mvc:exclude-mapping path=""/>
        -->
        <bean class="org.example.interceptor.MyInterceptor1"></bean>
    </mvc:interceptor>
</mvc:interceptors>

3.配置多个拦截器

3.1再编写一个拦截器的类

3.2 配置2个拦截器

<!-- 配置拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<!-- 哪些方法进行拦截 -->
<mvc:mapping path="/user/*"/>

    <!-- 注册拦截器对象 -->
    <bean class="cn.itcast.demo1.MyInterceptor1"/>
</mvc:interceptor>
    <mvc:interceptor>
        <!-- 哪些方法进行拦截 -->
        <mvc:mapping path="/**"/>
        <!-- 注册拦截器对象 -->
        <bean class="cn.itcast.demo1.MyInterceptor2"/>
    </mvc:interceptor>
</mvc:interceptors>

相关文章

  • SpringMVC框架中的拦截器

    1.拦截器的概述 SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术。可以定义拦截器链,连接器链...

  • 【SpringMVC】拦截器与异常处理

    SpringMVC的拦截器 01-SpringMVC拦截器-拦截器的作用(理解) Spring MVC 的拦截器类...

  • SpringMVC的拦截器

    SpringMVC的拦截器 01-SpringMVC拦截器-拦截器的作用(理解) Spring MVC 的拦截器类...

  • 拦截器

    注册拦截器 定义拦截器 另外对比SpringMVC 的拦截器,在SpringMVC.xml配置

  • 22_SpringMVC拦截器

    1. SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术。 2. 可以定义拦截器链,连接器链就是...

  • SpringMVC拦截器实现原理以及登录拦截器实现(图文讲解)

    前言 SpringMVC提供的拦截器类似于JavaWeb中的过滤器,只不过SpringMVC拦截器只拦截被前端控制...

  • SpringMVC(二)

    一、 SpringMVC的拦截器拦截器 : InterceptorSpring MVC 的拦截器类似于Servl...

  • springmvc 14 拦截器

    自定义拦截器 1. 自定义的拦截器实现HandlerInterceptor接口 2. 在springmvc中配置拦...

  • springMVC拦截器

    SpringMVC中使用Interceptor拦截器 有两种常用的方法实现SpringMVC拦截器: 1.一种是实...

  • 10月5号学习情况

    今日 学习情况 复习了SpringMVC拦截器的知识 复习了SpringMVC中的统一异常处理 更加了解sprin...

网友评论

      本文标题:SpringMVC框架中的拦截器

      本文链接:https://www.haomeiwen.com/subject/utkaphtx.html