由于这个项目有了 Sun 公司的参与和支持,所以 Tomcat 一般都会支持最新版的 Servlet 和 JSP 规范。这也是为什么 Java 初学者接触到的第一个 Web 服务总会是 Tomcat 。
但是 Tomcat 并未支持 EJB 和 JMS ,所以说 Tomcat 是一款轻量级的 Web 容器。
GlassFishSun 公司为 Java 提供了商业兼容的 Web 容器: Glassfish ,不过说实话,我没怎么用过这个容器,这个 Web 容器仅存在于我上大学的时候的课本上以及课后大作业上。
GlassFish 达到产品级质量,可免费用于开发、部署和重新分发。开发者可以免费获得源代码,还可以对代码进行更改。
Glassfish 既是 EJB 容器也是 WEB 容器,它支持最新版的 Java EE 标准。
而刚才前面介绍的 Tomcat 则仅仅只是一个 Web 容器。
JbossJboss 是一个基于 Java EE 的开放源代码的应用服务器。 JBoss 代码遵循 LGPL 许可,可以在任何商业应用中免费使用。
Jboss 和上面的 Glassfish 一样,同样是企业级的 Web 容器,并且在 2004 年 6 月, JBoss 公司宣布, JBoss 应用服务器通过了 Sun 公司的 J2EE 认证后,一直在紧跟最新的 J2EE 规范,而且在某些技术领域引领 J2EE 规范的开发。
因此,无论在商业领域,还是在开源社区, JBoss 成为了第一个通过 J2EE 1.4 认证的主流应用服务器。 JBoss 应用服务器已经真正发展成企业级应用服务器。
之后好景不长,在 2006 年, JBoss 被 Red Hat 以三亿五千万美金并购。
之后在 2019 年,也就是去年, Red Hat 为 JBoss Application Server 换了一个新的名字,即: WildFly 。
因为 JBoss 本身是开源免费的,而 Red Hat 的企业产品 JBoss EAP 是一个收费产品,Red Hat 为了使这两个产品差异化,避免用户混淆,而进行更名。
JBoss 版本:
社区版:JBoss AS(Application Server) -> WildFly
企业版:JBoss EAP(Enterprise Application Server)
JBoss 核心服务不包括支持 servlet / JSP 的 WEB 容器,一般与 Tomcat 绑定使用, JBoss 的 Web 容器使用的是 Tomcat 。
Apache如果不是 IT 行业,如果说起来 Apache ,是不是大多数人想到的是这个东西:
不过显然我要说的不是这个,而是这个小羽毛:
说起来惭愧,我在刚入门的很长一段时间中,一直以为 Apache 就是 Tomcat , 傻傻分不清楚。
后来接触到 PHP 以后,才知道他们俩完全不同, Logo 就不同(这不是废话)。
Apache 一般是指 Apache HTTP Server,是 Apache 软件基金会(和 Tomcat 同属一家基金会,并且 Apache 服务和 Apache 基金会名字都一样,新人能分清才见鬼了)下的一个网页服务器软件。
由于其跨平台和安全性,被广泛使用,是最流行的 Web 服务器软件之一。它快速、可靠并且可通过简单的 API 扩展。
我现在的博客站使用的就是 Apache 的服务,当时搞 WordPress 的时候着实坑了我一把,完全没想到一个 PHP 环境这么难搞,后来在网上找问题的搜索的时候才知道有 LAMP 这么个东西。
Linux,操作系统。
Apache,网页服务器。
MySQL,数据库管理系统(或者数据库服务器)。
PHP 、 Perl 或 Python,脚本语言。
不过还可以使用 Nginx 替换 Apache ,这个新的组合叫 LNMP 。
JettyJetty 和 Tomcat 有很多相似之处,比如说可以为 JSP 和 Servlet 提供运行时环境。Jetty 是 Java 语言编写的,它的 API 以一组 JAR 包的形式发布。
相比较 Tomcat 而言, Jetty 更加的轻量级,因为 Tomcat 除了遵循 Servlet 规范以外,自身还扩展了大量 Java EE 特性以满足企业级应用的需求。
但对于大量普通的互联网应用而言,并不需要用到 Tomcat 其他高级特性,所以在这种情况下,使用 Tomcat 是很浪费资源的。
而这时换成 Jetty ,每个应用服务器省下那几 MB 内存,对于大的分布式环境则是节省大量资源。
Jetty 可以同时处理大量链接并且长时间的保持这些链接,例如,一些 Web 聊天应用非常适合用 Jetty 服务器。