zoukankan      html  css  js  c++  java
  • 【Spring学习笔记-MVC-17】Spring MVC之拦截器

    作者:ssslinppp      

    1. 拦截器简介及应用场景




    2. 拦截器接口及拦截器适配器






    3. 运行流程图


    正常运行


    中断流程







    4. 程序实例


    控制层:

    @Controller
    @RequestMapping(value = "/test")
    public class TestController {
        
        @RequestMapping(value = "/interceptor12")
        public String interceptor12() {
            System.out.println("Controller层方法-interceptor12");
            return "index";
        }
        
        @RequestMapping(value = "/interceptor34")
        public String interceptor34() {
            System.out.println("Controller层方法-interceptor34");
            return "index";
        }
    }  

    总共定义了5个拦截器

    每个拦截器中只是打印消息,各拦截器类似,程序如下:

    public class MyInterceptor1 extends HandlerInterceptorAdapter {
        @Override
        public boolean preHandle(HttpServletRequest request,
                HttpServletResponse response, Object handler) throws Exception {
            System.out.println("MyInterceptor1-preHandle()");
            return true;
        }
        @Override
        public void postHandle(HttpServletRequest request,
                HttpServletResponse response, Object o, ModelAndView mav)
                throws Exception {
            System.out.println("MyInterceptor1-postHandle()");
        }
        @Override
        public void afterCompletion(HttpServletRequest request,
                HttpServletResponse response, Object o, Exception excptn)
                throws Exception {
            System.out.println("MyInterceptor1-afterCompletion()");
        }
    }  

    配置拦截器

    <!-- 定义拦截器 -->
        <mvc:interceptors>
            <mvc:interceptor>
                <!-- 拦截指定请求 -->
                <mvc:mapping path="/test/interceptor12" />
                <bean class="com.ll.Interceptor.MyInterceptor1" />
            </mvc:interceptor>
            
            <!-- 拦截所有的请求 -->
            <mvc:interceptor>
                <mvc:mapping path="/test/*" />
                <bean class="com.ll.Interceptor.MyInterceptorAll" />
            </mvc:interceptor>
            
            <mvc:interceptor>
                <mvc:mapping path="/test/interceptor12" />
                <bean class="com.ll.Interceptor.MyInterceptor2" />
            </mvc:interceptor>
            
            <mvc:interceptor>
                <mvc:mapping path="/test/interceptor34" />
                <bean class="com.ll.Interceptor.MyInterceptor3" />
            </mvc:interceptor>
            
            <mvc:interceptor>
                <mvc:mapping path="/test/interceptor34" />
                <bean class="com.ll.Interceptor.MyInterceptor4" />
            </mvc:interceptor>
        </mvc:interceptors>   

    特别注意拦截器的配置顺序,如下:
    1. MyInterceptor1;
    2. MyInterceptorAll;
    3. MyInterceptor2;
    4. MyInterceptor3;
    5. MyInterceptor4;
    其中,MyInterceptor1和MyInterceptor2拦截interceptor12请求,MyInterceptor3和MyInterceptor4拦截interceptor34请求,MyInterceptorAll拦截所有请求。







    7. 其他


    博客:
      淘宝-代做毕设:





    附件列表

    • 相关阅读:
      新IO建立的聊天程序
      “万能数据库查询分析器”在四大软件下载网站的排行榜中均入围前10,可喜可贺
      命令行界面的C/S聊天室应用 (Socket多线程实现)
      URL 多线程下载
      DB 查询分析器 6.03 如何灵活、快捷地操作国产达梦数据库
      DB 查询分析器 6.03 在Windows 8 上安装与运行演示
      Maven部署项目到Tomcat
      中文版Maya基础培训教程
      Arduino技术指南
      Photoshop 淘宝店面设计从入门到精通
    • 原文地址:https://www.cnblogs.com/ssslinppp/p/4613273.html
    Copyright © 2011-2022 走看看