## Documentation Index

### Introduction

This is the top-level entry point of the documentation bundle for the Apache Tomcat Servlet/JSP container. Apache Tomcat version 9.0 implements the Servlet 4.0 and JavaServer Pages 2.3 specifications from the Java Community Process, and includes many additional features that make it a useful platform for developing and deploying web applications and web services.

Select one of the links from the navigation menu (to the left) to drill down to the more detailed documentation that is available. Each available manual is described in more detail below.

### Apache Tomcat User Guide

The following documents will assist you in downloading and installing Apache Tomcat, and using many of the Apache Tomcat features.

1. Introduction - A brief, high level, overview of Apache Tomcat.
2. Setup - How to install and run Apache Tomcat on a variety of platforms.
3. First web application - An introduction to the concepts of a web application as defined in the Servlet Specification. Covers basic organization of your web application source tree, the structure of a web application archive, and an introduction to the web application deployment descriptor (`/WEB-INF/web.xml`).
4. Deployer - Operating the Apache Tomcat Deployer to deploy, precompile, and validate web applications.
5. Manager - Operating the Manager web app to deploy, undeploy, and redeploy applications while Apache Tomcat is running.
6. Host Manager - Operating the Host Manager web app to add and remove virtual hosts while Apache Tomcat is running.
7. Realms and Access Control - Description of how to configure Realms (databases of users, passwords, and their associated roles) for use in web applications that utilize Container Managed Security.
8. Security Manager - Configuring and using a Java Security Manager to support fine-grained control over the behavior of your web applications.
9. JNDI Resources - Configuring standard and custom resources in the JNDI naming context that is provided to each web application.
10. JDBC DataSource - Configuring a JNDI DataSource with a DB connection pool. Examples for many popular databases.
11. Classloading - Information about class loading in Apache Tomcat, including where to place your application classes so that they are visible.
12. JSPs - Information about Jasper configuration, as well as the JSP compiler usage.
13. SSL/TLS - Installing and configuring SSL/TLS support so that your Apache Tomcat will serve requests using the `https` protocol.
14. SSI - Using Server Side Includes in Apache Tomcat.
15. CGI - Using CGIs with Apache Tomcat.
16. Proxy Support - Configuring Apache Tomcat to run behind a proxy server (or a web server functioning as a proxy server).
17. MBeans Descriptors - Configuring MBean descriptors files for custom components.
18. Default Servlet - Configuring the default servlet and customizing directory listings.
19. Apache Tomcat Clustering - Enable session replication in a Apache Tomcat environment.
20. Balancer - Configuring, using, and extending the load balancer application.
21. Connectors - Connectors available in Apache Tomcat, and native web server integration.
22. Monitoring and Management - Enabling JMX Remote support, and using tools to monitor and manage Apache Tomcat.
23. Logging - Configuring logging in Apache Tomcat.
24. Apache Portable Runtime - Using APR to provide superior performance, scalability and better integration with native server technologies.
25. Virtual Hosting - Configuring virtual hosting in Apache Tomcat.
26. Advanced IO - Extensions available over regular, blocking IO.
27. Using Tomcat libraries with Maven - Obtaining Tomcat jars through Maven.
28. Security Considerations - Options to consider when securing an Apache Tomcat installation.
29. Windows Service - Running Tomcat as a service on Microsoft Windows.
30. Windows Authentication - Configuring Tomcat to use integrated Windows authentication.
31. High Concurrency JDBC Pool - Configuring Tomcat to use an alternative JDBC pool.
32. WebSocket support - Developing WebSocket applications for Apache Tomcat.
33. URL rewrite - Using the regexp based rewrite valve for conditional URL and host rewrite.
34. CDI and JAX-RS support - Configuring CDI,JAX-RS and Eclipse Microprofile support.
35. AOT compilation support - Ahead of Time compilation support with GraalVM/Native Image.

### Reference

The following documents are aimed at System Administrators who are responsible for installing, configuring, and operating an Apache Tomcat server.

- Release notes - Known issues in this Apache Tomcat release.
- Apache Tomcat Server Configuration Reference - Reference manual that documents all available elements and attributes that may be placed into the Apache Tomcat `conf/server.xml` file.
- JK Documentation - Complete documentation and HOWTOs on the JK native webserver connector, used to interface Apache Tomcat with servers like Apache HTTPd, IIS and others.
- Servlet 4.0 Specification and Javadoc
- JSP 2.3 Specification and Javadoc
- EL 3.0 Specification and Javadoc
- WebSocket 1.1 Specification and Javadoc
- JASPIC 1.1 Specification and Javadoc

### Apache Tomcat Developers

The following documents are for Java developers who wish to contribute to the development of the Apache Tomcat project.

- Building from Source - Details the steps necessary to download Apache Tomcat source code (and the other packages that it depends on), and build a binary distribution from those sources.
- Changelog - Details the changes made to Apache Tomcat.
- Status - Apache Tomcat development status.
- Developers - List of active Apache Tomcat contributors.
- Javadocs - Javadoc API documentation for Apache Tomcat's internals.
- Apache Tomcat Architecture - Documentation of the Apache Tomcat Server Architecture.