background image

Tomcat 与 Web 服务器、应用服务器的关系及区分

Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器。因为 Tomcat 技术先进、性
能稳定且免费,所以深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前
比较流行的 Web 应用服务器。
  一、Tomcat 与应用服务器
    到 目 前 为 止 , Tomcat 一 直 被 认 为 是 Servlet/JSP API 的 执 行 器 , 也 就 所 谓 的
Servlet 容器。然而,Tomcat 并不仅仅如此,它还提供了 JNDI 和 JMX API 的实现机制。
尽管如此,Tomcat 仍然还不能算是应用服务器,因为它不提供大多数 J2EE API 的支持。
  很有意思的是,目前许多的应用服务器通常把 Tomcat 作为它们 Servlet 和 JSP API
的容器。由于 Tomcat 允许开发者只需通过加入一行致谢,就可以把 Tomcat 嵌入到它们
的应用中。遗憾的是,许多商业应用服务器并没有遵守此规则。
  对于开发者来说,如果是为了寻找利用 Servlet、JSP、JNDI 和 JMX 技术来生成 Java 
Web 应用的话,选择 Tomcat 是一个优秀的解决方案;但是为了寻找支持其他的 J2EE 
API,那么寻找一个应用服务器或者把 Tomcat 作为应用服务器的辅助,将是一个不错的
解决方案;第三种方式是找到独立的 J2EE API 实现,然后把它们跟 Tomcat 结合起来使用。
虽然整合会带来相关的问题,但是这种方式是最为有效的。。
  二、Tomcat 与 Web 服务器
  Tomcat 是提供一个支持 Servlet 和 JSP 运行的容器。Servlet 和 JSP 能根据实时需要,
产生动态网页内容。而对于 Web

 

服务器来说, Apache 仅仅支持静态网页,对于支持动

态网页就会显得无能为力;Tomcat 则既能为动态网页服务,同时也能为静态网页提供支
持。尽管它没有通常的 Web 服务器快、功能也不如 Web 服务器丰富,但是 Tomcat 逐渐
为支持静态内容不断扩充。大多数的 Web 服务器都是用底层语言编写如 C,利用了相应
平台的特征,因此用纯 Java 编写的 Tomcat 执行速度不可能与它们相提并论。
  一般来说,大的站点都是将 Tomcat 与 Apache 的结合,Apache 负责接受所有来
自客户端的 HTTP 请求,然后将 Servlets 和 JSP 的请求转发给 Tomcat 来处理。Tomcat
完成处理后,将响应传回给 Apache,最后 Apache 将响应返回给客户端。