Quick summary
Apache Tomcat is a free, open-source HTTP server and servlet container that implements Jakarta EE (the successor to Java EE) specifications. Note that Tomcat 10 and newer target Jakarta EE APIs, while Tomcat 9 and earlier implement the older Java EE specifications.
Purpose and common uses
Tomcat provides a runtime for Java/Jakarta web applications — handling servlets, JSPs, WebSocket endpoints and expression language evaluation — so developers can deploy and serve web apps that are reachable through standard web browsers (for example Chrome, Firefox or Edge/Internet Explorer). It is widely used to host production sites and internal applications across multiple industries.
Notable adopters
Organizations and large web properties that have relied on Tomcat include AppFuse, Bonhams, Cardinal Health, Walmart’s web properties and The Weather Channel, among others.
Core modules and what they do
- Jasper — compiles and processes JavaServer Pages (JSP) into servlet code so pages can be executed by the container.
- Coyote — the HTTP connector that accepts network requests (HTTP/1.1) and forwards them into the servlet container.
- Cluster — handles session replication and workload distribution to support high-availability and load-balanced deployments.
- Catalina — the servlet container core that loads, manages and executes servlets and the servlet lifecycle.
Coding style and file limits
Tomcat follows specific source and documentation formatting rules:
- Source code (Jakarta/Java files): typically limited to 100 characters per line, use four-space indents and place opening braces on the same line as the declaration.
- Documentation and markup (.txt, .xml): conventions favor an 80-character maximum line width and two-space indentation for those files.
Licensing, contribution and availability
Tomcat is distributed under the Apache License, Version 2.0. It is a community-driven project with many volunteer contributors; both novice and experienced developers are encouraged to participate. Binary downloads are available for Windows and other platforms, and the project is free to use.
Technical
- Windows
- Full