Behind a huge share of Java-based websites and enterprise applications sits a quiet, unglamorous piece of infrastructure called Apache Tomcat. It’s not flashy, but it’s been running production Java web applications reliably for over two decades, and remains one of the most widely deployed servlet containers in the world.
This guide covers what Apache Tomcat actually is, how it works, its architecture, and where it stands heading into 2026 with the release of Tomcat 11.
What Is Tomcat Software?
Apache Tomcat is a free, open-source web server and servlet container that runs Java-based web applications. Developed by the Apache Software Foundation, it implements the Jakarta Servlet, Jakarta Pages (JSP), and related specifications, allowing developers to deploy and run Java web applications, servlets, and JSPs in a lightweight, production-ready environment.
What Is Apache Tomcat?

Simple Definition
Apache Tomcat is an open-source implementation of the Jakarta Servlet, Jakarta Pages, Expression Language, WebSocket, Annotations, and Authentication specifications, providing a runtime environment for Java web applications.
What Does Tomcat Do?
Tomcat acts as both a web server and a servlet container, handling incoming HTTP requests and executing the Java code (servlets and JSPs) needed to generate a response.
Why Is Tomcat Used?
Developers use Tomcat because it’s free, lightweight, actively maintained, and specifically built to run standard Java web technologies without the overhead of a full Java EE application server.
Apache Tomcat is an open-source implementation of Jakarta Servlet, Jakarta Pages, Expression Language, WebSocket, Annotations, and Authentication specifications.
How Does Apache Tomcat Work?
Client Sends an HTTP Request
A user’s browser or client application sends an HTTP request to the server where Tomcat is running.
Tomcat Receives the Request
Tomcat’s built-in connector accepts the incoming request and routes it to the appropriate web application.
Servlet Processes the Request
The relevant servlet or JSP processes the request, executing the underlying Java logic and generating dynamic content.
Tomcat Returns the Response
The generated response is sent back through Tomcat to the client, completing the request-response cycle.
Key Features of Apache Tomcat

Servlet and JSP Support
Full support for Jakarta Servlet and Jakarta Pages specifications, the core technologies for building dynamic Java web applications.
HTTP and HTTP/2 Support
Built-in support for modern HTTP protocols, improving performance for handling concurrent client connections.
WebSocket Support
Native support for WebSocket connections, enabling real-time, bidirectional communication between client and server.
SSL/TLS Support
Built-in capability to configure secure, encrypted connections for production deployments.
Monitoring and Management
Includes a management interface and monitoring tools for tracking application status and server health.
Virtual Hosting and Clustering
Supports running multiple websites on a single Tomcat instance, along with clustering for load balancing across multiple servers.
Current Tomcat documentation lists HTTP/2, proxy support, SSL/TLS, WebSocket, clustering, load balancing, monitoring, virtual hosting, logging, and other capabilities.
What Is Apache Tomcat Used For?
Hosting Java Web Applications
Running Java-based websites and web applications in production environments.
Running Servlet-Based Applications
Executing Java servlets that handle dynamic request processing and business logic.
Deploying JSP Applications
Serving JavaServer Pages that combine HTML with embedded Java code for dynamic content generation.
Hosting Web Services
Supporting RESTful and SOAP-based web services built on Java technologies.
Supporting Enterprise Web Applications
Powering large-scale, mission-critical business applications across industries that rely on the Java ecosystem.
Apache Tomcat Architecture
Server
The top-level component representing the entire Tomcat instance.
Service
Groups one or more connectors with a single engine, managing how requests are received and processed.
Connector
Handles communication between clients and Tomcat, managing incoming HTTP or AJP requests.
Engine
Processes requests received from connectors and routes them to the appropriate virtual host.
Host
Represents a virtual host, allowing Tomcat to serve multiple domains or applications from one server instance.
Context
Represents a single deployed web application within a host, mapping requests to the correct application resources.
Tomcat’s official documentation treats a Context as a web application and documents the server’s connectors, containers, deployment, class loading, and related components.
Apache Tomcat vs Web Server vs Application Server

Tomcat vs Apache HTTP Server
Apache HTTP Server (often called simply “Apache”) serves static content and is not designed to run Java applications directly, while Tomcat specifically runs Java servlets and JSPs — the two are frequently used together, with Apache HTTP Server handling static content and proxying dynamic requests to Tomcat.
Tomcat vs Nginx
Nginx is a high-performance web server and reverse proxy, commonly placed in front of Tomcat to handle load balancing, static content, and SSL termination, rather than serving as a replacement for Tomcat’s Java servlet capabilities.
Is Tomcat a Web Server or Application Server?
Tomcat functions primarily as a servlet container and web server, providing core Java web technologies without the full range of enterprise services (like distributed transactions) found in a complete Java EE application server such as WildFly or GlassFish.
Apache Tomcat Versions and Java Compatibility
Tomcat 9
Implements Java EE-based specifications using the older javax.* namespace and requires Java 8 or later; its end of support has been announced for March 31, 2027.
Tomcat 10.1
Implements Jakarta EE specifications using the jakarta.* namespace and requires Java 11 or later.
Tomcat 11
The current major version, implementing the Jakarta EE 11 platform’s specifications and requiring Java 17 or later.
Java Version Requirements
As of 2026, Tomcat 11 is the current supported major line and requires Java 17 or later, while Tomcat 10.1 requires Java 11 or later, and Tomcat 9 requires Java 8 or later but is approaching its announced end-of-life date.
Apache Tomcat 11: What’s New in 2026?
Jakarta EE 11 Compatibility
Tomcat 11 implements the Servlet 6.1, Jakarta Pages 4.0, Expression Language 6.0, WebSocket 2.2, and Authentication 3.1 specifications required by the Jakarta EE 11 platform.
Security Updates
Recent Tomcat 11 releases, including version 11.0.25 (released August 12, 2026), have included ongoing security and stability fixes as part of the project’s regular release cycle.
Modern HTTP and TLS Support
Tomcat 11 continues to build on HTTP/2 and modern TLS support introduced in earlier versions, refined further with each incremental release.
Migration From Older Tomcat Versions
The switch from the javax.* package namespace to jakarta.* began with Tomcat 10 as part of the transition from Java EE to Jakarta EE, meaning applications migrating from Tomcat 9 to Tomcat 10 or later will almost certainly require code changes — a dedicated migration tool exists to help automate much of this conversion.
Advantages and Limitations of Apache Tomcat
Advantages of Tomcat
- Free and open-source under the Apache License 2.0.
- Lightweight compared to full Java EE application servers.
- Actively maintained with a long, stable release history.
- Strong community support and extensive documentation.
Limitations of Tomcat
- Doesn’t include full Java EE enterprise features like distributed transactions or full EJB support.
- Requires additional configuration for advanced clustering or failover setups.
- Migrating between major versions (especially Tomcat 9 to 10+) can require meaningful code changes.
When Tomcat Is a Good Choice
Tomcat is a strong fit for teams running standard servlet and JSP-based Java web applications that don’t require the full feature set of a heavyweight Java EE application server.
Is Apache Tomcat Still Relevant in 2026?
Continued Jakarta EE Development
Active development continues under the Jakarta EE 11 platform, with Tomcat maintaining pace with the latest servlet and related specifications.
Java Web Application Support
Tomcat remains one of the most widely deployed servlet containers, continuing to power a large share of Java-based web applications in production today.
Security and Regular Updates
Ongoing releases, including regular patches to both the actively supported 11.0.x and 9.0.x branches, reflect continued investment in keeping the platform secure and current.
Frequently Asked Questions
What is Tomcat software?
Apache Tomcat is a free, open-source web server and servlet container that runs Java-based web applications, implementing the Jakarta Servlet and related specifications.
What is Apache Tomcat used for?
It’s used to host and run Java web applications, servlets, JSPs, and web services in production environments.
Is Tomcat a web server?
Yes, Tomcat functions as a web server and servlet container, though it’s often paired with a dedicated web server like Apache HTTP Server or Nginx for handling static content and load balancing.
Is Tomcat an application server?
Not fully — Tomcat provides core servlet and JSP capabilities but lacks some of the broader enterprise features found in full Java EE application servers.
Is Apache Tomcat free?
Yes, Tomcat is free and open-source, released under the Apache License 2.0.
Is Tomcat still used in 2026?
Yes, Tomcat remains actively developed and widely deployed, with Tomcat 11 as the current major version implementing the Jakarta EE 11 platform.
What programming language does Tomcat use?
Tomcat is written in Java and is designed specifically to run Java-based web applications.
What is the difference between Tomcat and Apache?
“Apache” typically refers to Apache HTTP Server, which serves static web content, while Tomcat is a separate Apache Software Foundation project specifically built to run Java servlets and JSPs.
Which Java version is required for Tomcat 11?
Tomcat 11 requires Java 17 or later.
Conclusion
Apache Tomcat has remained a dependable backbone for Java web applications for over two decades, and Tomcat 11’s move to the Jakarta EE 11 platform keeps it current with modern Java standards. Whether you’re maintaining a legacy application on Tomcat 9 or deploying fresh on Tomcat 11, understanding its architecture and version requirements makes migration and long-term maintenance far more manageable. For teams running standard Java servlet-based applications, Tomcat remains one of the most reliable, well-supported choices available.
