On this page
Overview
Apache Tomcat is a Servlet container for running Java web applications. It implements Jakarta Servlet, Pages (JSP), Expression Language, WebSocket, and related web specifications while providing deployment, HTTP connectors, sessions, JNDI resources, TLS, and operational configuration.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Provide a runtime for Servlet, JSP, and WebSocket applications
Tomcat 11 implements Jakarta Servlet 6.1, Pages 4.0, Expression Language 6.0, WebSocket 2.2, and related specifications. Java web applications can be deployed as WAR files or expanded directories and served through the container.
Manage connectors, sessions, and resources at the server layer
HTTP/HTTPS connectors, sessions, JNDI DataSources, Realms, access logs, and related operational settings can be managed at the server layer, separating application code from runtime configuration.
Separate binaries and instance configuration with CATALINA_HOME and CATALINA_BASE
Tomcat binaries can live under CATALINA_HOME while per-instance configuration, logs, and webapps are placed under CATALINA_BASE, simplifying multi-instance operation and upgrades.
Sources: [5]
Best fit
Before adoption
Tomcat 11.0.26 requires Java 17+ and the Jakarta EE 11 web generation
Tomcat 11.0.26 requires Java 17 or newer and implements the Jakarta EE 11 web specification generation including Servlet 6.1 and Pages 4.0. Applications and libraries must be compatible with that generation.
10.1 and 9.0 remain parallel lines with different specification targets
Tomcat 10.1.60 targets the Jakarta EE 10 web generation, while Tomcat 9.0.122 targets Java EE 8. Support for the 9.0.x line is announced to end on March 31, 2027, so legacy deployments should plan their release-line migration.
Sources: [2]
Moving from 9 or earlier to 10/11 requires the javax-to-jakarta transition
Tomcat 10 and later use jakarta.* API packages after the Java EE to Jakarta EE transition. Check source and binary compatibility of applications and dependencies and use the official migration tooling where appropriate.
Official sources
- [1]Apache Tomcat README(2026-10-03)
- [2]Apache Tomcat releases(2026-10-03)
- [3]Apache Tomcat 11.0 documentation(2026-10-03)
- [4]Apache Tomcat 11 configuration reference(2026-10-03)
- [5]Apache Tomcat RUNNING.txt(2026-10-03)
- [6]Tomcat 11 migration guide(2026-10-03)
Supplemental curator note
When selecting a Java web runtime, match the Tomcat major line to the application's Servlet and Jakarta EE generation first. Moving from Tomcat 9 or earlier to 10/11 includes the javax.* to jakarta.* namespace change and should not be treated as a server-only upgrade.
Try it in 3 steps
- 1
Download and extract Tomcat 11.0.26
Tomcat 11 requires Java 17 or newer. For production use, also verify the PGP signature or SHA-512 checksum from the official download page.
curl -LO https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.26/bin/apache-tomcat-11.0.26.tar.gz && tar xzf apache-tomcat-11.0.26.tar.gz - 2
Start Tomcat in the foreground
This example targets a Unix-like environment and keeps the server in the foreground for local verification.
cd apache-tomcat-11.0.26 && bin/catalina.sh run - 3
Request the default page
A returned Tomcat default page confirms the minimal setup. Stop the foreground process with Ctrl+C.
curl http://localhost:8080/
Growth
Growth trends · Last 30 days
8,258 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 245
- Open PRs
- 35
Development activity is still being collected.
Built with
Categories and tags
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- javaee
- http
- java
- network-server
- tomcat
- Stars
- 8,258
- Forks
- 5,402
- Watchers
- 472
- Open issues
- 0
- Contributors
- 162
- Owner type
- Organization
- Primary language
- Java
- License
- Apache-2.0
- Repository last updated
- Oct 3, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- NGINX31,781 Stars
2 shared tag(s) · 1 shared category(s)
run web delivery, reverse proxying, and load balancing while choosing between mainline and stable streams
C - OpenSearch13,804 Stars
2 shared tag(s) · Same language
Support distributed full-text, analytics, observability, and vector search
Java - REST Assured7,139 Stars
2 shared tag(s) · Same language
test REST APIs from Java with a DSL for requests, status, headers, and JSON/XML assertions
Java - OkHttp47,081 Stars
2 shared tag(s)
centralize HTTP, TLS, connection reuse, caching, and DNS for Android/JVM applications
Kotlin - Ktor14,536 Stars
2 shared tag(s)
build HTTP servers and web APIs in Kotlin with coroutine-based I/O, routing DSLs, and composable plugins
Kotlin - Apache ActiveMQ Classic2,464 Stars
1 shared tag(s) · 2 shared category(s) · Same language
self-host enterprise messaging with a Java broker supporting JMS, AMQP, MQTT, STOMP, and WebSocket transports
Java
Report incorrect information
Tell us if any listing information is incorrect or outdated.