Java Web 应用程序通常运行在支持 Java Servlet 和 JSP(JavaServer Pages)规范的 Web 容器 或 应用服务器 上。以下是常见的服务器类型和具体实现:
一、主流的 Java Web 服务器 / 应用服务器
1. Apache Tomcat
- 定位:轻量级的 Web 容器(Servlet 容器),支持 Servlet 和 JSP。
- 适用场景:中小型项目、Spring Boot、Spring MVC 等基于 Servlet 的应用。
- 优点:
- 开源免费
- 轻量、启动快、配置简单
- 社区活跃,文档丰富
- 缺点:
- 不支持完整的 Java EE(现 Jakarta EE)功能(如 EJB、JMS 等)
- ✅ 最常用的选择之一
2. Jetty
- 定位:嵌入式 Web 容器,也可独立部署。
- 适用场景:
- 嵌入到应用程序中(如 Spark、Eclipse Jetty 插件)
- 微服务架构(Spring Boot 默认可选)
- 优点:
- 启动更快,内存占用小
- 易于集成和嵌入
- ✅ 适合微服务和云原生环境
3. Undertow
- 定位:由 JBoss 开发的高性能 Web 服务器。
- 特点:
- 非阻塞 I/O,性能优秀
- 可嵌入,Spring Boot 支持
- 使用场景:高并发、低延迟的应用
- ✅ WildFly 默认使用 Undertow
4. WildFly(原 JBoss AS)
- 定位:全功能的 Java EE / Jakarta EE 应用服务器
- 支持技术:EJB、JPA、JMS、CDI、JSF 等完整企业级特性
- 适用场景:大型企业级应用,需要完整 EE 特性的系统
- 缺点:较重,启动慢,配置复杂
- ✅ 功能全面,适合传统企业应用
5. GlassFish
- 定位:Oracle 提供的官方 Jakarta EE 参考实现
- 特点:
- 官方标准实现,兼容性好
- 支持全部 Jakarta EE 规范
- 现状:社区版发展缓慢,不如 Tomcat 流行
- ✅ 适合学习 Jakarta EE 标准
6. WebLogic(Oracle)
- 商业产品,功能强大,稳定性高
- 适用场景:大型X_X、电信等企业系统
- 优点:高可用、集群、监控完善
- 缺点:昂贵,配置复杂
- ✅ 大型企业使用较多
7. WebSphere(IBM)
- IBM 的企业级应用服务器
- 类似 WebLogic,用于大型复杂系统
- 成本高,维护复杂
二、现代开发中的趋势(特别是 Spring Boot)
在现代 Java Web 开发中(尤其是使用 Spring Boot):
- 应用通常内嵌一个 Web 服务器(如 Tomcat、Jetty 或 Undertow)
- 打包成可执行的 JAR 文件,直接运行
java -jar app.jar - 无需外部部署到独立服务器
例如:
<!-- Spring Boot 默认内嵌 Tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
也可以切换为 Jetty 或 Undertow。
三、总结:如何选择?
| 场景 | 推荐服务器 |
|---|---|
| 普通 Web 应用(Spring MVC、Spring Boot) | Tomcat(最常见) |
| 微服务、高性能需求 | Jetty 或 Undertow |
| 需要完整 Java EE 功能 | WildFly 或 GlassFish |
| 大型企业系统(预算充足) | WebLogic 或 WebSphere |
| 内嵌式部署(Spring Boot) | 内嵌 Tomcat/Jetty/Undertow |
✅ 结论:
目前绝大多数 Java Web 应用使用 Apache Tomcat,尤其是在 Spring 生态中。由于 Spring Boot 的普及,内嵌 Tomcat 已成为事实上的标准。
如果你刚开始学习或开发,建议从 Tomcat 入手。
CLOUD云计算