zoukankan      html  css  js  c++  java
  • 拦截器

    1.什么是拦截器?作用?

    对于SpringMVC来说,拦截器的主要工作就是拦截用户的请求,拦截下来之后,常见的操作比如进行登陆验证,登陆系统之后,系统获取到你的请求,然后可以分析用户权限。

    2.如何使用拦截器?

      主要相关类和方法:HandlerExeCutionChain 该类主要由handler和handler interceptors组成,HandlerMapping类通过getHandler方法会调用到该类。

               SpringMVC 对于一个请求可以添加多个拦截器,而这些拦截器集合中会链式调用这些拦截器,每个拦截器会顺序调用固定的方法,而这些方法定义在HandlerInterceptor中,

     这是拦截器的一个基础接口,里面有三个方法

     

    boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception;

    使用时机在处理请求之前

    应用场景可以在该方法放入一些初始化操作,比如权限验证,日志管理等,

    注意该方法返回的是一个boolean类型,如果为true,则会调用后面的拦截器和目标方法,如果为false则不会调用。

    void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)throws Exception;

    使用时机在调用了目标方法之后,准确来说是在调用了controller中定义的方法之后,但是在dispatcherservlet返回视图view之前。

    应用场景根据使用的时机就知道,该拦截器可以对controller中的modelAndView对象进行操作。

    1 <mvc:interceptors>
    2     <bean class="com.jackie.springmvc.interceptors.FirstInterceptor"></bean>
    3     <!-- 配置拦截器(不)作用的路径 -->
    4     <mvc:interceptor>
    5     <mvc:mapping path="/emps"/>
    6         <bean class="com.jackie.springmvc.interceptors.SecondInterceptor"></bean>
    7     </mvc:interceptor>
    8 </mvc:interceptors>
    岁月本长而忙者自促;天地本宽而卑者自隘;风花雪月本闲,而劳忧者自冗;天行健,君子以自强不息;地势坤,君子以厚德载物;宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒.不妄取,不妄予,不妄想,不妄求,与人方便,随遇而安
  • 相关阅读:
    如何获取SQL Server数据库连接字符串的某些部分
    .NET同步原语Barrier简介
    模版引擎RazorEngine简介
    如何使用SQL Server实现SignalR的横向扩展
    SignalR的客户端.NET Client介绍
    一个简单的SignalR例子
    看视频学SignalR—在微软虚拟学院学习SignalR
    看视频学Bootstrap—在微软虚拟学院学习Bootstrap
    C# 窗口与控件的相关操作
    opencv——常见的操作
  • 原文地址:https://www.cnblogs.com/vvning/p/7587519.html
Copyright © 2011-2022 走看看