当前位置: 首页 > news >正文

处理filter里抛出的异常

 Filter 的异常是在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter()这里扔出来的。Filter是tomcat负责调用执行的,所以会比 servlet(尤其是SpringMVC 的dispatcherServlet )先执行,所以 Filter 里的错误,无法使用 @ControllerAdvice+@ExceptionHandler 进行处理。最终是会被org.apache.catalina.core.StandardWrapperValve#invoke(Request, Response) 捕获,执行[212行代码]exception(request, response, e);给response填充status=500,后面会根据这个status查询对应的errorPage对象。最终会被org.apache.catalina.core.StandardHostValve#status(Request, Response) 进行处理,因为没有 500对应的 errorPage,所以 在StandardHostValve 的217行context.findErrorPage(0) 使用 status=0 来查找;会找到ErrorPage对象,ErrorCode[errorCode=0,location=/error],再继续执行的话,就会执行到 custom()方法里,进行 377行代码的 rd.forward(request.getRequest(), response.getResponse());就会转到 springMVC 提供的 BasicErrorController里 errorHtml() 或者 error()进行处理了,所以,最终返回 springMVC 包装的信息{"timestamp": "2024-08-16T04:06:53.701+00:00","status": 500,"error": "Internal Server Error","path": "XXXX"}一转入到  /error,则就会进入servlet体系了,就会走 dispatcherServlet了, 就会走 Interceptor了,就是走springMVC 的一些列东西了也验证了 ,Interceptor  在 Filter 后面 调用执行的。结论:所以::要处理filter里抛出来的异常,需要使用ErrorController

相关文章:

处理filter里抛出的异常

Filter 的异常是在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter()这里扔出来的。Filter是tomcat负责调用执行的,所以会比 servlet(尤其是SpringMVC 的dispatcherServlet )先执行,所以 Filter 里的错误&…...

IndexedDB深度解析:JavaScript的客户端数据库

IndexedDB是一个在用户浏览器中运行的低等级API,用于存储大量结构化数据。作为NoSQL数据库,IndexedDB为Web应用程序提供了丰富的数据存储能力,支持键值对存储、索引、事务和复杂查询等功能。本文将详细介绍IndexedDB的基本概念、工作原理、使…...

C语言中的函数指针和返回值为数组的函数指针对比

函数指针 //定义一个函数指针,函数的参数是int型,返回值为int typedef int (*func)(int);//定义一个函数指针,函数的参数是int*型,返回值为int* typedef int* (*func)(int *);定义一个返回值为数组指针的函数 //定义…...

根据字符串的长度和字符值的大小来对字符串切片进行排序

在 Go 语言中,根据字符串的长度和字符值的大小来对字符串切片进行排序。示例如下: package mainimport ("fmt""sort" )// 自定义类型,以实现排序接口 type byLengthAndValue []string// 实现 sort.Interface 的 Len 方法 func (s b…...

RabbitMQ 的工作原理

下面是rabbitmq 的工作原理图解 1、客户端连接到消息队列服务器,打开一个channel。 2、客户端声明一个exchange,并设置相关属性。 3、客户端声明一个queue,并设置相关属性。 4、客户端使用routing key, 在exchange和queue 之间…...

WPF 资源、引用命名空间格式、FrameworkElement、Binding、数据绑定

资源 对象级别独立文件 静态资源使用(StaticResource)指的是在程序载入内存时对资源的一次性使用,之后就不再去访问这个资源了。 动态资源使用(DynamicResource)使用指的是在程序运行过程中仍然会去访问资源。 显然,如果你确定…...

vue3-03-创建响应式数据的几种方法

响应式数据 一、 ref 创建:响应式数据1)ref 创建:基本类型的响应式数据2)ref 创建:对象类型的响应式数据3)volar 插件自动添加 .value4)customRef 自定义 ref 二、 reactive 创建:响…...

stm32智能颜色送餐小车(openmv二维码识别+颜色识别+oled显示)

大家好啊,我是情谊,今天我们来介绍一下我最近设计的stm32产品,我们在今年七月份的时候参加了光电设计大赛,我们小队使用的就是stm32的智能送餐小车,虽然止步于省赛,但是还是一次成长的经验吧,那…...

对接的广告平台越多,APP广告变现的收益越高?

无论是游戏、社交、工具应用类APP还是泛娱乐类APP,流量变现的方式主要有广告、内购、订阅三种方式。其中,广告变现是门槛最低、适用最广的变现方式。 只要APP有流量,就可以进行广告变现,让APP的流量快速转化为商业价值。作为最常…...

LINUX原始机安装JDK

文章目录 下载 JDK压缩包创建jdk文件夹sftp 远程上传解压缩 tar -zxvf 包名配置环境变量刷新 环境变量验证是否安装成功安装JAVA 依赖yum更新及替换镜像curl 命令下载更新更新yum依赖判断repo文件是否存在生成缓存、启用阿里云镜像 重新下载java依赖再次验证hello world 下载 J…...

MR400D工业级带网口4G DTU:RS232/RS485 TO LTE深度测评

在物联网技术日新月异的今天,数据传输的效率和稳定性成为了各行各业关注的焦点。作为一款集先进性与实用性于一身的物联网设备,工业级带网口的4G DTU(数据传输单元)以其强大的功能特性和广泛的应用场景,赢得了市场的广…...

第四范式发布AI+5G视频营销产品 助力精准获客与高效转化

产品上新 Product Release 今天,第四范式AI5G视频电话互动营销产品全新发布。 相较于以往销效率低、互动差、转化差的传统电话外呼和短信营销方式,视频电话互动营销基于AI、5G等技术,可让用户接听电话时观看个性化视频广告并实时互动&#xf…...

DVWA-IDS测试(特殊版本)

起因 浏览DVWA历史更新记录发现有版本带有IDS插件,可以用于平时没有相关设备等场景演示用,所以开启本次测试。 下载 官方最新版本是移除了IDS插件,原因是“从不使用”,所以需要下载移除该插件之前的版本。 https://github.com/…...

轻度自闭症的温柔启航:星启帆的康复之旅

在儿童成长的道路上,自闭症作为一种复杂的神经发展障碍,给许多家庭带来了挑战与困扰。轻度自闭症,作为自闭症谱系中的一个类型,其症状表现相对较轻,但同样需要我们的关注与科学的干预。星启帆自闭症儿童康复机构&#…...

一、OpenTK简介

文章目录 一、历史和发展二、功能和优势(一)强大的图形渲染功能(二)跨平台支持(三)与 C# 的紧密集成(四)开源和活跃的社区(五)性能优化三、适用场景(一)游戏开发(二)科学计算可视化(三)虚拟现实和增强现实应用(四)图形用户界面开发(五)教育和培训应用(六)…...

Dom4j详细介绍

Dom4j 1.1 解析概览 将数据存储为XML格式后,程序化地访问这些数据变得至关重要。虽然Java基础的IO操作能够实现这一目标,但这一过程往往既复杂又繁琐,尤其是在处理大型文件或需要频繁读写操作的场景下。为了解决这些问题,开发者…...

thissuper

this&super 一、 this this关键字表示调用的是当前类的成员变量或者成员方法 一般情况下,可以省略this关键字直接调用成员变量以及成员方法但当方法的形参与成员变量同名时,如果要在方法内使用成员变量,必须添加this关键字指明使用的是…...

cv::normalize()

cv::normalize()函数是OpenCV库中用于对矩阵或图像数据进行归一化处理的工具。归一化是图像处理和计算机视觉中常见的预处理步骤,它可以确保数据在一定范围内,从而有助于后续的处理和算法的稳定性和性能。cv::normalize()函数可以将输入矩阵的值缩放到一…...

【Python快速入门和实践016】Python常用脚本-对视频抽取指定帧数并保存

一、功能介绍 这段代码的功能是从一个视频文件中抽取指定数量的帧,并将这些帧保存为图像文件。步骤如下: 设置路径和参数: video_path:视频文件的路径。image_folder:保存抽取图像的目录。num_frames_to_extract&#…...

[Linux CMD] 目录与文件相关的命令

. 代表次层目录 .. 代表上一层目录 - 代表前一个工作目录 ~ 代表目前使用者身份所在的家目录 ~account 代表account这个使用者的家目录(account是个账号名称&#xff09…...

IBM Rhapsody 9.0.2 配置与编译问题解决指南

1. IBM Rhapsody 9.0.2环境配置常见问题解析 第一次接触IBM Rhapsody 9.0.2时,我遇到了不少配置上的坑。这个强大的系统建模工具虽然功能全面,但在环境搭建阶段确实需要特别注意几个关键点。最典型的问题就是Visual Studio版本兼容性,这也是大…...

告别龟速采样!用DDIM在Stable Diffusion WebUI中实现10倍加速出图(附完整代码)

10倍速出图实战:在Stable Diffusion中解锁DDIM采样器的隐藏性能 当你在凌晨三点盯着进度条缓慢爬升的AI绘图界面,是否想过那些被浪费的GPU计算周期?不同于传统DDPM必须严格遵循马尔可夫链的逐步骤降噪,DDIM(Denoising …...

Legacy iOS Kit终极指南:轻松完成旧款iOS设备降级与恢复

Legacy iOS Kit终极指南:轻松完成旧款iOS设备降级与恢复 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to downgrade/restore, save SHSH blobs, and jailbreak legacy iOS devices 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit Lega…...

AIGlasses_for_navigation精彩案例分享:真实视障用户过马路辅助语音引导记录

AIGlasses_for_navigation精彩案例分享:真实视障用户过马路辅助语音引导记录 1. 引言:当AI成为视障者的“眼睛” 想象一下,你站在一个繁忙的路口,耳边是呼啸而过的车流声,眼前却是一片模糊或黑暗。过马路&#xff0c…...

如何用Ice让混乱的Mac菜单栏重获新生?2025年最实用的macOS界面管理工具

如何用Ice让混乱的Mac菜单栏重获新生?2025年最实用的macOS界面管理工具 【免费下载链接】Ice Powerful menu bar manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ice/Ice Ice是一款专为macOS设计的菜单栏管理工具,能够智能整理…...

【限时技术白皮书】:Istio 1.20正式版Java适配黄金72小时——我们已验证的6大兼容性断点及热修复方案

第一章:Istio 1.20正式版Java微服务适配全景概览Istio 1.20 正式版于2023年10月发布,针对Java生态的可观测性、安全通信与流量治理能力进行了系统性增强。该版本在Sidecar注入、Java应用兼容性、OpenTelemetry集成及JVM指标采集方面均实现关键演进&#…...

遥感数据处理避坑指南:实测光谱如何用Matlab匹配卫星波段(以GF-6为例)

遥感数据处理避坑指南:实测光谱如何用Matlab匹配卫星波段(以GF-6为例) 当你在野外辛苦采集的ASD高光谱数据与卫星影像比对时,是否遇到过这样的困惑:明明地面测量值看起来合理,但和卫星数据对比时却总存在难…...

SecGPT-14B镜像免配置:内置模型路径固定,便于Docker volume持久化备份

SecGPT-14B镜像免配置:内置模型路径固定,便于Docker volume持久化备份 1. 镜像特点与核心价值 SecGPT-14B是一款专为网络安全领域优化的文本生成模型,基于Qwen2ForCausalLM架构开发。这个预置镜像的最大特点是开箱即用,无需用户…...

我的家庭影音中心进化史:从群晖到用Ubuntu+CasaOS自建,省下大几千

我的家庭影音中心进化史:从群晖到UbuntuCasaOS自建方案 1. 为什么放弃品牌NAS选择自建方案 三年前,我花了大半个月工资购入了一台群晖DS920,当时觉得这是家庭数据管理的终极解决方案。然而随着使用深入,逐渐发现品牌NAS的几大痛点…...

如何快速部署AI模型:免费本地化解决方案完整指南

如何快速部署AI模型:免费本地化解决方案完整指南 【免费下载链接】LocalAI mudler/LocalAI: LocalAI 是一个开源项目,旨在本地运行机器学习模型,减少对云服务的依赖,提高隐私保护。 项目地址: https://gitcode.com/GitHub_Trend…...