Apache Tomcat是在开放和协作的互联网社区中逐渐迭代而成Web应用服务器技术,沿用Apache2许可证通过开源社区向全球发布。Apache Tomcat的服务器技术包含Jakarta Servlet、Jakarta Server Pages、Jakarta Expression Language、Jakarta WebSocket、Jakarta Annotations和Jakarta Authentication等有代表性的解决方案。这些开源的规范和解决方案集合最终融入了Jakarta EE平台(前身是Java EE平台)的一部分。
Everything you need to know about Tomcat: The high-availability Java and Jakarta EE application server for servlets, JSP, and WebSockets.
From: What is Apache Tomcat: The Original Java Servlet Container
Tomcat的简史
首先我们来熟悉一下Java架构中重要的Web组件,Servlet在运行Java Web服务的容器(Container)内部负责接受请求、处理请求并发回响应的一个程序组件。这个重要的中枢组件是通过不同商业化实例的探索逐渐迭代形成的。
第一个Java Servlet Container(JSC)是Sun Microsystems(2009年被Oracle甲骨文以74亿美元收购)的Java Web Server (JWS)。作为一款商业化产品,JWS比大多数商业Web服务器便宜,但却没有获得商业成功。在这个阶段Java和Servlet仍然是新事物。值得注意的是JWS的主要成果之一是让Java Servlet的规范逐渐成为了行业标准。
1996年,大量免费的JSC开始流行。Apache的JServ和CERN/W3C的Jigsaw是两个最早开源的JSC。紧随其后的是Jetty、Locomotive Application Server、EnHydra等。随着工业界逐渐接受Java Servlet的标准,商业Servlet Container开始变得流行,其中包括WebLogic的Tengah、ATG的Dynamo和LiveSoftware的JRun。
1997年,Sun发布了Java Servlet Development Kit(JSDK)的第一个版本。JSDK是一个非常小的Servlet Container,支持Jakarta Server Pages(JSP)并具有内置的HTTP 1.0 Web服务器。JSP是一款协助开发人员创建基于 HTML、XML、SOAP 或其他文档类型的动态网页生成技术的集合。Sun Microsystems于1999年发布Servlet的开发实例并向所有尝试Java服务标准的人开放免费下载,为其部署到商业服务器做好了准备。
1998年上半年,Sun Microsystems发布了新的JSP规范,该规范建立在Java Servlet API之上,允许更快速敏捷地开发动态Web应用程序。JSDK 2.1版本(现在称为 JSWDK)发布之后,Sun Microsystems的James Duncan Davidson重写了旧版JSDK服务器的核心。这个新Java Servlet引擎参考的核心是一个名为Tomcat的全新Servlet Container(其版本号从3.0开始)。
Tomcat和JSWDK的功能随后变得越来越丰富。为了让世界各地的开发人员能够检查并共同维护Servlet和JSP的运行方式,James和Sun Microsystems决定向JSWDK开放源代码。Sun Microsystems希望推广该技术,并且达成了共识认为Apache是实现这一目标的最佳场所。值得注意的是,Sun Microsystems将开放源代码的Tomcat用于JSP,而Apache将其用于Servlet。
Java Servlets are the Java programs that run on the Java-enabled web server or application server. They are used to handle the request obtained from the web server, process the request, produce the response, and then send a response back to the web server.
From: Introduction to Java Servlets
自从Tomcat捐赠给Apache软件基金会以来,开发人员社区的Servlet和JSP得到了快速发展。重新定义了Java服务器的含义的Tomcat可以自由分发,受到Sun Microsystems和Apache Software Foundation的支持。如今,Tomcat已成为使用最广泛的开源软件包之一,并且是一个全年每天都充满活力的协作项目。
Work Consulted [1] Project, Apache Tomcat. “Apache Tomcat.” https://tomcat.apache.org/. Accessed 22 Mar. 2024. [2] Beaton, Wayne. “Jakarta Ee Platform.” Projects.Eclipse.Org, 27 Feb. 2024, projects.eclipse.org/projects/ee4j.jakartaee-platform. [3] Baeldung, Written by: “Introduction to Servlets and Servlet Containers.” Baeldung, 16 Jan. 2024, www.baeldung.com/java-servlets-containers-intro. [4] GfG. “Introduction to Java Servlets.” GeeksforGeeks, 5 Mar. 2024, www.geeksforgeeks.org/introduction-java-servlets/. [5] “Java EE at a Glance.” Oracle, www.oracle.com/java/technologies/java-ee-glance.html. Accessed 22 Mar. 2024. [6] Tyson, What is: Java By Matthew, and Matthew Tyson. “What Is Tomcat? The Original Java Servlet Container.” InfoWorld, 5 Aug. 2022, https://www.infoworld.com/article/3510460/what-is-apache-tomcat-the-original-java-servlet-container.html/.