• 跨域请求/SpringMVC拦截器


    <!-- 开启允许跨域 -->
    <mvc:cors>
    <mvc:mapping path="/**"/>
    </mvc:cors>


    SpringMVC拦截器

    简介:

    SpringMVC拦截器,类似于Servlet中的filter过滤器,用于进行请求拦截和处理

    常见应用场景

    1、权限检查:如检测请求是否具有登录权限,如果没有直接返回到登陆页面。 
    2、性能监控:用请求处理前和请求处理后的时间差计算整个请求响应完成所消耗的时间。 
    3、日志记录:可以记录请求信息的日志,以便进行信息监控、信息统计等。

    使用方法:

    springmvc配置文件中配置:

    <!-- 拦截器 -->
    <mvc:interceptors>
      <mvc:interceptor>
        <mvc:mapping path="/**" />
        <bean class="com.thundersoft.interceptor.AuthInterceptor"/>
      </mvc:interceptor>
    </mvc:interceptors>

    2、实现接口并继承方法(可以同时包含多个实现类)

    public class myInterceptor implements HandlerInterceptor{
        @Override
        public boolean preHandler(HttpServletRequest request, HttpServletResponse response, Object obj)throws Exception{
        /*该方法将在请求处理之前进行调用,只有该方法返回true,才会继续执行后续的Interceptor和Controller,当返回值为true 时就会继续调用下一个Interceptor的preHandle 方法,如果已经是最后一个Interceptor的时候就会是调用当前请求的Controller方法;*/
        }
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response,Object obj,Exception e)throws Exception {
        /*该方法将在请求处理之后,DispatcherServlet进行视图返回渲染之前进行调用,可以在这个方法中对Controller 处理之后的ModelAndView 对象进行操作。*/
        }
        @Override
        public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1,Object arg2,ModelAndView arg3) throws Exception {
        /*该方法也是需要当前对应的Interceptor的preHandle方法的返回值为true时才会执行,该方法将在整个请求结束之后,也就是在DispatcherServlet 渲染了对应的视图之后执行。用于进行资源清理。*/
        } 
    }

    执行顺序

    1、单个实现类的执行顺序

    preHandler -> Controller -> postHandler -> model渲染-> afterCompletion

    2、多个实现类的执行顺序

    ———————preHandler1——————- 
    ———————preHandler2——————- 
    ———————preHandler3——————- 
    ———————–Controller——————— 
    ———————postHandler3—————— 
    ———————postHandler2—————— 
    ———————postHandler1—————— 
    ———————postHandler1—————— 
    ——————afterCompletion3—————- 
    ——————afterCompletion2—————- 
    ——————afterCompletion1—————-

  • 相关阅读:
    关于maven下载速度慢,下载完的依赖包不知去向的应对措施
    进一步解析二分搜索树的实现
    mysql语法建库建表综合整理是示例
    走进二分搜索树的第一课
    优先队列和堆
    window系统mysql安装后获取默认密码
    微信小程序中使用云开发获取openid
    使用IDEA将springboot框架导入的两种方法
    C/C++、Qt4实现FTP客户端(有无界面版)
    云服务器搭建代理服务器 —— 某sock ,简单说明
  • 原文地址:https://www.cnblogs.com/yplq/p/9441307.html
Copyright © 2020-2023  润新知