广告
返回顶部
首页 > 资讯 > 后端开发 > Python >详解SpringMVC的拦截器参数及拦截器链配置
  • 642
分享到

详解SpringMVC的拦截器参数及拦截器链配置

2024-04-02 19:04:59 642人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录一、拦截器参数二、拦截器链配置一、拦截器参数 前置处理 public boolean preHandle(httpservletRequest request, HttpServ

一、拦截器参数

前置处理

public boolean preHandle(httpservletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("preHandle...");
        return true;
    }

参数:

■ request:请求对象

■ response:响应对象

■ handler:被调用的处理器对象,本质上是一个方法对象,对反射技术中的Method对象进行再包装

返回值:

■ 返回值为false,被拦截的处理器将不执行

后置处理

public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle...");
    }

参数:

modeAanView:如果处理器执行完成具有返回结果,可以读取到对应数据与页面信息,并进行调整

完成后处理

public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion...");
    }

参数:

ex:如果处理器执行过程中出现异常对象,可以针对异常情况进行单独处理

二、拦截器链配置

配置第一个拦截器

@Component
//定义拦截器类,实现HandlerInterceptor接口
//注意当前类必须受spring容器控制
public class ProjectInterceptor implements HandlerInterceptor {
    @Override
    //原始方法调用前执行的内容
    //返回值类型可以拦截控制的执行,true放行,false终止
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String contentType = request.getHeader("Content-Type");
        HandlerMethod hm = (HandlerMethod)handler;
        System.out.println("preHandle..."+contentType);
        return true;
    }
 
    @Override
    //原始方法调用后执行的内容
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle...");
    }
 
    @Override
    //原始方法调用完成后执行的内容
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion...");
    }
}

 配置第二个拦截器

@Component
public class ProjectInterceptor2 implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("preHandle...222");
        return true;
    }
 
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle...222");
    }
 
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion...222");
    }
}

当配置多个拦截器时,形成拦截器链

@Configuration
@ComponentScan({"com.itheima.controller"})
@EnableWEBmvc
//实现WebMvcConfigurer接口可以简化开发,但具有一定的侵入性
public class springMVCConfig implements WebMvcConfigurer {
    @Autowired
    private ProjectInterceptor projectInterceptor;
    @Autowired
    private ProjectInterceptor2 projectInterceptor2;
 
    @Override
    public void addInterceptors(InterceptorReGIStry registry) {
        //配置多拦截器
        registry.addInterceptor(projectInterceptor).addPathPatterns("/books","/books/*");
        registry.addInterceptor(projectInterceptor2).addPathPatterns("/books","/books/*");
    }
}

 三个拦截器构成的拦截器链图例

拦截器链的运行规律参照拦截器添加顺序为准

当拦截器中出现对原始处理器的拦截,后面的拦截器均终止运行

当拦截器运行中断,仅运行配置在前面的拦截器的afterCompletion操作

以上就是详解SpringMVC的拦截器参数及拦截器链配置的详细内容,更多关于SpringMVC拦截器配置的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解SpringMVC的拦截器参数及拦截器链配置

本文链接: https://www.lsjlt.com/news/153467.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解SpringMVC的拦截器参数及拦截器链配置
    目录一、拦截器参数二、拦截器链配置一、拦截器参数 前置处理 public boolean preHandle(HttpServletRequest request, HttpServ...
    99+
    2022-11-13
  • 详解SpringMVC的拦截器链实现及拦截器链配置
    目录1、拦截器链实现2、拦截器链的执行顺序1、拦截器链实现 只需定义多个拦截器的 bean,然后在拦截器的配置类中将其逐一添加即可 第一个拦截器的定义: @Component pub...
    99+
    2022-11-13
  • SpringMVC拦截器详解
    目录web.xml文件springMVC配置文件:controller类:第一个拦截器配置:第二个拦截器:总结web.xml文件 <?xml version="1....
    99+
    2022-11-12
  • 详解SpringMVC拦截器配置及使用方法
    本文介绍了SpringMVC拦截器配置及使用方法,分享给大家,具体如下:常见应用场景日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。 权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接...
    99+
    2023-05-31
    spring mvc 拦截器
  • 详解SpringMVC HandlerInterceptor拦截器的使用与参数
    目录拦截器概念:拦截器VS过滤器自定义拦截器开发过程:拦截器配置项:多拦截器配置:拦截器概念: 拦截器( Interceptor)是一种动态拦截方法调用的机制,请求处理过程解析核心原...
    99+
    2022-11-13
  • SpringMVC拦截器超详细解读
    目录1.什么是拦截器2.拦截器和过滤器有哪些区别3.拦截器方法4.多个拦截器的执行流程1.什么是拦截器 ​ SpringMVC提供了Intercepter拦截器机制,类似于Servl...
    99+
    2022-11-13
  • SpringMVC拦截器创建配置及执行顺序
    目录SpringMVC拦截器介绍一、创建拦截器二、配置拦截器设置不需要拦截的请求三、多个拦截器的执行顺序SpringMVC拦截器介绍 springMVC 中的拦截器用于拦截控制器方法...
    99+
    2022-11-13
  • Java 超详细讲解SpringMVC拦截器
    目录拦截器(interceptor)的作用拦截器和过滤器区别拦截器快速入门多拦截器操作拦截器方法说明本章小结拦截器(interceptor)的作用 Spring MVC 的 拦截器 ...
    99+
    2022-11-13
  • 详解Spring 拦截器流程及多个拦截器的执行顺序
    目录拦截器的定义测试拦截器多个拦截器的执行顺序让 preHandle 进行拦截总结       拦截器是 Spring MVC 中的组件,它可...
    99+
    2022-11-12
  • struts2 拦截器的详解
    Struts2拦截器是一种可以在请求到达Action之前或之后执行的组件。它们可以用来实现一些通用的任务,例如身份验证、日志记录、性...
    99+
    2023-09-23
    struts2
  • 详解SpringMVC中拦截器的概念及入门案例
    目录一、拦截器概念二、拦截器入门案例一、拦截器概念 拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行 作用: 在指定的方法...
    99+
    2022-11-13
  • SpringMVC HandlerInterceptor拦截器的使用与参数是什么
    这篇文章的内容主要围绕SpringMVC HandlerInterceptor拦截器的使用与参数是什么进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章...
    99+
    2023-06-26
  • SpringBoot配置拦截器实现过程详解
    目录如何配置拦截器拦截器设置容易出现的问题如何取消拦截操作实例-登录验证如何配置拦截器 step1: 自定义拦截器 public class MyInterceptor imple...
    99+
    2022-11-13
    SpringBoot配置拦截器 SpringBoot拦截器
  • SpringMVC拦截器创建配置及执行顺序是什么
    本文小编为大家详细介绍“SpringMVC拦截器创建配置及执行顺序是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringMVC拦截器创建配置及执行顺序是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-30
  • vue 请求拦截器的配置方法详解
    按如下步骤进行 1.request.js内容:http request请求拦截器和http response服务器响应拦截器配置 2.http.js内容:请求数据方式封装 3.uti...
    99+
    2022-11-12
  • 解决SpringMVC拦截器path路径的坑
    目录SpringMVC拦截器path路径的坑SpringMVC拦截器设置多个path设置多个pathSpringMVC拦截器path路径的坑 SpringMVC提供了很方便的拦截器供...
    99+
    2022-11-12
  • 详解SpringMVC的拦截器与异常处理机制
    目录1.SpringMVC拦截器1.1拦截器(interceptor)的作用1.2拦截器和过滤器的区别1.3拦截器的快速入门1.4多拦截器操作1.5拦截器方法说明2.SpringMV...
    99+
    2022-11-13
  • 零基础入门SpringMVC拦截器的配置与使用
     在SpringMVC中 我们说到了拦截器 , 它会在映射处理器(HandleMapping)执行时检查我们访问的地址是否配置拦截器 , 在拦截器中实现一些功能 &nbs...
    99+
    2022-11-13
  • 防止SpringMVC拦截器拦截js等静态资源文件的解决方法
    SpringMVC提供<mvc:resources>来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下方案进行解决:方案一、拦截器中增加针对静态资源不进行过滤(涉及spring-mvc...
    99+
    2023-05-31
    springmvc 静态资源 j
  • Struts2之Action接收请求参数和拦截器详解
    技术分析之在Struts2框架中使用Servlet的API1. 在Action类中也可以获取到Servlet一些常用的API需求:提供JSP的表单页面的数据,在Action中使用Servlet的API接收到,然后保存到三个域对象中,最后再显...
    99+
    2023-05-31
    struts 拦截 action
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作