Tomcat 系列篇四-介绍下 Valve 架构

💡 原文中文,约13200字,阅读约需32分钟。
📝

内容提要

本文介绍了 Tomcat 架构中的 valve 和 pipeline 机制,pipeline 可以添加 valve,Valve 在其中起到前后衔接的作用。对于 container 和 context 的 pipeline,分别有不同的第一个 valve。最后,wrapper 的 pipeline 会调用 filterChain 去处理请求。

🎯

关键要点

  • valve 是 Tomcat 架构中的重要组成部分,负责请求处理的前后衔接。
  • pipeline 机制允许在其中添加多个 valve,形成有序的处理链。
  • container 和 context 的 pipeline 有不同的第一个 valve,container 的 pipeline 使用 basic valve 作为兜底。
  • StandardPipeline 的 getFirst 方法返回第一个 valve,若没有则返回 basic valve。
  • ErrorReportValve 处理错误报告,调用下一个 valve 的 invoke 方法。
  • StandardHostValve 和 StandardContextValve 负责处理请求的上下文和认证相关逻辑。
  • wrapper 的 pipeline 通过 StandardWrapperValve 处理请求,涉及 filterChain 的调用。
  • filterChain 负责执行 servlet 的过滤逻辑,处理请求和响应。
➡️

继续阅读