You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GlassFish servlet容器是否使用了Apache Tomcat的catalina组件?

问题解答

观察正确性确认

你的观察完全正确,你在GlassFish中看到的org.apache.catalina开头的ServletConfig、ServletContext实现类确实来自Apache Tomcat的Catalina模块。

复用Catalina的核心原因

GlassFish在3.x及更早版本中,直接复用Tomcat的Catalina作为Web容器核心,没有自研Servlet实现,主要出于三点考量:

  • 控制开发成本:Servlet规范的实现复杂度极高,需要覆盖HTTP协议解析、Servlet生命周期管理、类加载隔离、规范兼容性校验等大量复杂场景,Catalina是经过全球生产环境大规模验证的成熟实现,直接复用可节省大量从零开发的人力和时间投入。
  • 保障规范兼容性:Tomcat本身就是Servlet、JSP规范的官方参考实现,对Java EE规范的符合度经过了广泛验证,复用Catalina可避免自研实现容易出现的规范兼容问题,也能降低应用在Tomcat和GlassFish之间迁移的适配成本。
  • 降低长期维护成本:Catalina采用商业友好的Apache 2.0开源协议,GlassFish开发团队可直接参与上游社区贡献迭代,不需要独立维护一整套Servlet实现代码栈,大幅减少后续漏洞修复、版本升级的维护成本。

补充说明:从GlassFish 4.1版本开始,官方逐步切换到自研的Web容器实现,后续新版本的GlassFish中已经不会再出现Catalina相关的类。

对应运行截图

Apache Tomcat服务器运行Servlet截图
GlassFish服务器运行Servlet截图

内容的提问来源于stack exchange,提问作者Sara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 15:45:05