首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在 Spring Interceptor 中检查 http 响应状态代码?

在 Spring Interceptor 中检查 HTTP 响应状态代码,可以通过实现 HandlerInterceptor 接口并重写 afterCompletion 方法来实现。下面是一个简单的示例:

首先,创建一个实现 HandlerInterceptor 接口的类:

代码语言:java
复制
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class CustomInterceptor implements HandlerInterceptor {

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception exception) throws Exception {
        int statusCode = response.getStatus();
        // 在这里检查 statusCode,并根据需要执行相应的操作
    }

    // 其他方法的实现(如:preHandle,postHandle)
}

接下来,将创建的自定义拦截器注册到 Spring 应用中:

代码语言:java
复制
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new CustomInterceptor()).addPathPatterns("/**");
    }
}

在这个示例中,我们创建了一个名为 CustomInterceptor 的类,实现了 HandlerInterceptor 接口,并重写了 afterCompletion 方法。在该方法中,我们可以通过 response.getStatus() 获取 HTTP 响应状态代码。然后,我们可以根据需要执行相应的操作。

最后,我们将 CustomInterceptor 注册到 Spring 应用中,以便在每个请求中调用它。

请注意,这个示例仅用于演示如何在 Spring Interceptor 中检查 HTTP 响应状态代码。在实际应用中,您可能需要根据您的需求进行相应的调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

springMVC系列(四)——springMVC拦截器

2、权限检查登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面; 3、性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前记录开始时间,在处理完后记录结束时间,从而得到该请求的处理时间...response,Object handler,Exception ex) throws Exception; } preHandle:预处理回调方法,实现处理器的预处理(登录检查...),第三个参数为响应的处理器。...返回值:true表示继续流程(调用下一个拦截器或处理器); false表示流程中断(登录检查失败),不会继续调用其他的拦截器或处理器,此时我们需要通过response来产生响应;...afterCompletion:整个请求处理完毕回调方法,即在视图渲染完毕时回调,性能监控我们可以在此记录结束时间并输出消耗时间,还可以进行一些资源清理,类似于try-catch-finally

41410

Spring学习笔记(7)一Spring MVC拦截器

一、什么是拦截器 Spring MVC的拦截器(Interceptor)类似于Servlet的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。...要使用Spring MVC的拦截器,就需要对拦截器类进行定义和配置。通常拦截器类可以通过两种方式来定义。..."com.ma.interceptor.Interceptor2"/> 上面的代码,元素用于配置一组拦截器,基子元素...注意:的子元素必须按照上述代码的配置顺序进行编写,即 ,否则文件会报错。...如果第一个拦截器return true; 而第二个拦截器 return false;结果如下: 小结 首先学习如何在Spring MVC项目中定义和配置拦截器,然后了解单个拦截器和多个拦截器的执行流程

43630

java什么是过滤器_JAVAweb过滤器

相关配置文件配置拦截器: mvc:interceptors mvc:interceptor </mvc:interceptor...而拦截器提供了三个方法支持(1)preHandle:预处理回调方法,实现处理器的预处理(登录检查),第三个参数为响应的处理器(如我们上一章的Controller实现); 返回值:true表示继续流程(...调用下一个拦截器或处理器);false表示流程中断(登录检查失败),不会继续调用其他的拦截器或处理器,此时我们需要通过response来产生响应;postHandle:后处理回调方法,实现处理器的后处理...(3)使用的资源不同:同其他的代码块一样,拦截器也是一个spring的组件,归spring管理,配置在spring文件,因此能使用spring里的任何资源,独享。...所以在Spring为基础的构架的程序,优先使用拦截器。

90430

过滤器和拦截器

Servlet 在处理网络端(例如解析 HTTP 请求、连接处理等)的 servlet 容器运行。 Tomcat 是最受欢迎的。...Filter 它是一个 Java 类,由 servlet 容器针对每个传入的 HTTP 请求和每个 HTTP 响应执行。 在到达 Servlet 之前,请求总是首先通过 Filter 实例。...destroy() - 当过滤器从服务取出时,它只被调用一次。 Interceptor Spring 拦截器类似于 Servlet 过滤器。...细粒度的预处理任务适用于HandlerInterceptor(授权检查等) 内容处理相关或通用流程非常适合过滤器(例如多部分表单、zip 压缩、图像处理、日志记录请求、身份验证等) Interceptor...您甚至可以检查处理程序方法是否具有特定注释。 Spring Cloud Gateway 自定义过滤器 GlobalFilter 全局过滤器影响每个请求。

58230

扔掉okhttp、httpClient,来试试这款轻量级HTTP客户端神器?

发生任意异常时执行重试; 默认响应状态码不是2xx或者发生IO异常时自动进行重试。...复制代码 错误解码器 在HTTP发生请求错误(包括发生异常或者响应数据不符合预期)的时候,错误解码器可将HTTP相关信息解码到自定义异常。... * 当请求发生异常或者收到无效响应结果的时候,将HTTP相关信息解码到异常,无效响应由业务自己判断  *  * When an exception occurs in the request or...如果http状态码不是2xx,直接抛错!...Response: 将响应内容适配成Response对象返回 其他任意Java类型:将响应体内容适配成一个对应的Java类型对象返回,如果http状态码不是2xx,直接抛错!

1.8K30

教你自己动手写HTTP服务器

本文试着介绍如何在Android上手动编写一个轻量的HTTP服务器,通过阅读本文,笔者即将为你揭开HTTP服务器的面纱,收获一个五脏俱全的轻量HTTP服务器组件TinyHttpd。...Http响应解析 ? 如上图所示,主要包含三部分:状态行(response line),响应头(header),响应正文(body)。...状态行(response line):包含三部分:http版本,服务器返回状态码,描述信息。以CRLF进行分割。 响应头(header) : 格式为(name:value),用于服务器返回信息的描述。...根据需要检查HttpResponse,或者修改HttpResponse头和数据。...()对request和response修改后,再递归调用下一个拦截器: public class XXXInterceptor implements Interceptor { ……

1.6K80

Springmvc最全(必会知识合集)带Java代码示例(保姆级别讲解)包会

4.2 DispatcherServlet 辅助类 spring 的 DispatcherServlet 使用一些特殊的 bean来处理request 请求和渲染合适的视图。...spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema...redirect :a.jsp" 或者 :redirect:findall 注意:重定向时地址栏会发生拼接 modelmap 中值(也会带着)的问题 13.异常处理 方法1:在web.xml响应状态码配置一个对应页面...method=select&id=1 通过修改 http状态值来标记请求的目的 Spring 实现 RESTful 风格 HiddenHttpMethodFilter:...> 补充: springMVC 拦截器使用场景 1 、日志记录 :记录请求信息的日志 2 、权限检查登录检查 3 、性能检测

43930

Java学习笔记-全栈-web开发-21-SpringBoot使用Javaweb三大组件

拦截器(Interceptor)和过滤器(Filter)的区别 SpringInterceptor(拦截器)与Servlet的Filter有相似之处,比如二者都是AOP编程思想的体现,都能实现权限检查...Filters 通常将 请求和响应(request/response) 当做黑盒子,Filter 通常不考虑servlet 的实现。...允许用户介入(hook into)请求的生命周期,在请求过程获取信息,Interceptor 通常和请求更加耦合。 在Spring构架的程序,要优先使用拦截器。...规范不同 Filter 不能够使用 Spring 容器资源 拦截器是一个Spring的组件,归Spring管理,配置在Spring文件,因此能使用Spring里的任何资源、对象,例如 Service对象...、数据源、事务管理等,通过IoC注入到拦截器即可 Spring 中使用 interceptor 更容易 Filter 是被 Server(like Tomcat) 调用 Interceptor 是被 Spring

23330

我终于决定要放弃okhttp、httpClient,选择了这个牛逼的神仙工具!贼爽

发生任意异常时执行重试; 默认响应状态码不是2xx或者发生IO异常时自动进行重试。...错误解码器 在HTTP发生请求错误(包括发生异常或者响应数据不符合预期)的时候,错误解码器可将HTTP相关信息解码到自定义异常。...* 当请求发生异常或者收到无效响应结果的时候,将HTTP相关信息解码到异常,无效响应由业务自己判断 * * When an exception occurs in the request or...如果http状态码不是2xx,直接抛错!...Response: 将响应内容适配成Response对象返回 其他任意Java类型:将响应体内容适配成一个对应的Java类型对象返回,如果http状态码不是2xx,直接抛错!

3.2K50

SpringBootStarter技术:生产就绪与环境配置、实现自定义Starter

● 度量指标类:运行时监控到的指标,内存、线程池、HTTP统计信息等。 ● 操作控制类:关闭应用等操作类。 启用/禁止端点规则 ● 默认情况下,除shutdown外的所有端点均已启用。...● 调用抽象方法doHealthCheck进行状态检查,出现异常则状态变为Status.DOWN。...如果我们需要提供自定义的健康检查信息状态,可以 通 过 HealthIndicator 的 接 口 来 实 现 , 并 将 该 实 现 类 注 册 为JavaBean。...你需要实现其中的health方法,并返回自定义的健康状态响应信息,该响应信息应该包括一个状态码和要展示的详细信息。...如下代码所示: Registrar类的作用是扫描主配置类的同级目录及子包,并将相应的组件导入Spring Boot创建管理容器,源码如下: 果 进 入 AutoConfigurationImportSelector

90110

Spring Boot 的 HTTP 客户端框架

错误解码器 在HTTP发生请求错误(包括发生异常或者响应数据不符合预期)的时候,错误解码器可将HTTP相关信息解码到自定义异常。...* 当请求发生异常或者收到无效响应结果的时候,将HTTP相关信息解码到异常,无效响应由业务自己判断 * * When an exception occurs in the request or...* * @author 陈添明 */ public interface ErrorDecoder { /** * 当无效响应的时候,将HTTP信息解码到异常,无效响应由业务自行判断...如果http状态码不是2xx,直接抛错!...Response: 将响应内容适配成Response对象返回 其他任意Java类型:将响应体内容适配成一个对应的Java类型对象返回,如果http状态码不是2xx,直接抛错!

11910

过滤器与拦截器详解图_过滤器 拦截器

Java的Filter并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。...根据需要检查HttpServletRequest ,也可以修改HttpServletRequest 头和数据。在响应到达客户端之前,拦截HttpServletResponse。...spring mvcInterceptor可以理解为是Spring MVC框架对AOP的一种实现方式。...spring mvcInterceptor拦截请求是通过HandlerInterceptor来实现的。所以HandlerInteceptor拦截器只有在Spring Web MVC环境下才能使用。...),返回值:true表示继续流程(调用下一个拦截器或处理器),false表示流程中断(登录检查失败),不会继续调用其他的拦截器或处理器,此时我们需要通过response来产生响应

42220

扔掉okhttp、httpClient,来试试这款轻量级HTTP客户端神器?

发生任意异常时执行重试; 默认响应状态码不是2xx或者发生IO异常时自动进行重试。...错误解码器 在HTTP发生请求错误(包括发生异常或者响应数据不符合预期)的时候,错误解码器可将HTTP相关信息解码到自定义异常。... * 当请求发生异常或者收到无效响应结果的时候,将HTTP相关信息解码到异常,无效响应由业务自己判断  *  * When an exception occurs in the request or...如果http状态码不是2xx,直接抛错!...Response: 将响应内容适配成Response对象返回 其他任意Java类型:将响应体内容适配成一个对应的Java类型对象返回,如果http状态码不是2xx,直接抛错!

2.4K30

拦截器的骚操作

SSM系列文章 学会Spring的正确姿势! 万万没想到!Bean还有这么多东西 Spring的AOP! 聊聊Spring数据库开发 Spring事务还能这样管理?...“Spring MVC的拦截器(Interceptor)类似于Servlet的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。... 注意:的子元素必须按照上述代码的配置顺序进行编写,否则文件会报错。 2....单个拦截器,在程序的执行流程如下图所示: 多个拦截器的执行流程 “多个拦截器(假设有两个拦截器Interceptor1和Interceptor2,并且在配置文件Interceptor1拦截器配置在前...首先介绍了如何在Spring MVC项目中定义和配置拦截器, 然后详细讲解了单个拦截器和多个拦截器的执行流程, 最后通过一个用户登录权限验证的应用案例演示了拦截器的实际应用。

54550

自己动手,实现一款轻量级 HTTP 调用工具

来源:juejin.cn/post/6854573219899244551 本篇文章继续继续介绍retrofit-spring-boot-starter的实现原理,从零开始介绍如何在spring-boot...但是如果我们项目每一个业务代码都要写上面的样板代码,会非常的繁琐。有没有一种方式让用户只关注接口定义,其它事情全部交给框架自动处理?...创建Bean实例:根据BeanDefinitionRegistry里面的BeanDefinition信息,创建Bean实例,并将实例对象保存到spring容器,创建的方式包括反射创建、工厂方法创建和工厂...Converter:将@Body标记的方法参数序列化为请求体数据;将响应体数据反序列化为响应对象。 OkHttpClient:底层发送http请求的客户端对象。...实现详解 注册Bean定义 为了实现将HttpService接口代理对象完全交由spring容器管理,首先就得将HttpService接口扫描并注册到BeanDefinitionRegistry

57430
领券