
Description
You finish a Java web application, package it as a war, and something still has to run it — handle HTTP, manage sessions, dispatch requests to the right servlet. A full commercial application server is heavy enough that startup alone is a wait. Apache Tomcat is the usual choice for this layer: an open-source implementation of the Jakarta Servlet, Pages and WebSocket specifications, where dropping a war into the webapps directory is the deployment step and startup takes seconds.
An Apache Software Foundation project developed in the open, it has carried a great deal of production traffic for over two decades. Three branches are currently maintained: 11.0.x for Jakarta EE 11, 10.1.x for Jakarta EE 9 and later, and 9.0.x from the Java EE 8 era, whose end of support has been announced for 31 March 2027. Moving from 9 to 10 involves the package rename from javax.* to jakarta.*, for which the project supplies a migration tool.
Apache License 2.0, cross-platform, with installer and zip distributions on Windows.
Servlet container: implements the Jakarta Servlet specification, accepting HTTP requests, maintaining sessions and routing to the servlets in your application.
JSP support: the Jakarta Pages engine is built in, compiling and executing page templates server-side.
WebSocket and EL: Jakarta WebSocket for bidirectional communication, plus Expression Language, Annotations and Authentication.
Simple deployment: a war placed in webapps is expanded and deployed automatically, and applications can also be uploaded and redeployed from the manager interface without restarting the server.
Manager applications: the bundled Manager and Host Manager apps show deployed applications in a browser, start and stop them individually, and report sessions and server status.
Selectable connectors: NIO and NIO2 connector implementations are available, along with OpenSSL-accelerated TLS through Tomcat Native, for tuning under load.
Three maintained branches: 11.0.x, 10.1.x and 9.0.x run in parallel so a project can match the Jakarta EE or Java EE version it targets.
Migration tooling: the Jakarta EE migration tool handles the javax.* to jakarta.* rename, so upgrading an older application is not a file-by-file edit.
Free and open: Apache License 2.0, source available, usable commercially, and cross-platform.
An Apache Software Foundation project developed in the open, it has carried a great deal of production traffic for over two decades. Three branches are currently maintained: 11.0.x for Jakarta EE 11, 10.1.x for Jakarta EE 9 and later, and 9.0.x from the Java EE 8 era, whose end of support has been announced for 31 March 2027. Moving from 9 to 10 involves the package rename from javax.* to jakarta.*, for which the project supplies a migration tool.
Apache License 2.0, cross-platform, with installer and zip distributions on Windows.
Features
Servlet container: implements the Jakarta Servlet specification, accepting HTTP requests, maintaining sessions and routing to the servlets in your application.
JSP support: the Jakarta Pages engine is built in, compiling and executing page templates server-side.
WebSocket and EL: Jakarta WebSocket for bidirectional communication, plus Expression Language, Annotations and Authentication.
Simple deployment: a war placed in webapps is expanded and deployed automatically, and applications can also be uploaded and redeployed from the manager interface without restarting the server.
Manager applications: the bundled Manager and Host Manager apps show deployed applications in a browser, start and stop them individually, and report sessions and server status.
Selectable connectors: NIO and NIO2 connector implementations are available, along with OpenSSL-accelerated TLS through Tomcat Native, for tuning under load.
Three maintained branches: 11.0.x, 10.1.x and 9.0.x run in parallel so a project can match the Jakarta EE or Java EE version it targets.
Migration tooling: the Jakarta EE migration tool handles the javax.* to jakarta.* rename, so upgrading an older application is not a file-by-file edit.
Free and open: Apache License 2.0, source available, usable commercially, and cross-platform.
